RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Вопрос


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Dmitry I. Platonoff
To : Sebas
Subj : Вопрос

> На каких буквах CD-драйвы сидят !
> Сто-процентного способа найти не могу !

Да ну? :)

typedef struct _CDROMDeviceMap
{
USHORT usDriveCount;
USHORT usFirstLetter;
} CDROMDeviceMap;

int CDDeviceFinder( CDROMDeviceMap& CDMap )
{
HFILE hf;
ULONG ulAction = 0;
ULONG ulParamSize = sizeof ( ulAction );
ULONG ulDataSize = sizeof ( CDROMDeviceMap );

if ( DosOpen( "CD-ROM2$", &hf, &ulAction, 0, FILE_NORMAL,
OPEN_ACTION_FAIL_IF_NEW | OPEN_ACTION_OPEN_IF_EXISTS,
OPEN_ACCESS_READONLY | OPEN_SHARE_DENYNONE, NULL ) ) return 0;
DosDevIOCtl( hf, 0x82, 0x60, NULL, 0, &ulParamSize,
( PVOID ) &CDMap, sizeof ( CDROMDeviceMap ), &ulDataSize );
DosClose( hf );
return CDMap.usDriveCount;
}

В полученной структурке -- количество драйвов и номер первой буковки (они подряд идут).

Mon 03 Dec 2001 18:39 Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; msnca)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.