Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, ДимДимыч, Вы писали:
ДД>>Здравствуйте, MShura, Вы писали:
MS>>>Другой вариант более простой:
MS>>>- открываешь раздел CreateFile( )
MS>>>- юзаешь IOCTL_STORAGE_GET_DEVICE_NUMBER + IOCTL_DISK_GET_PARTITION_INFO (для большей информации)
ДД>>"Другой" вариант — то самое, что надо.
ДД>>Огромное спасибо!
А>покажите плиз как этим IOCTL_STORAGE_GET_DEVICE_NUMBER пользоваться.
Примерно так:
HANDLE hPart;
DWORD Tmp;
STORAGE_DEVICE_NUMBER Info;
// Open partition
hPart = CreateFileW( L"\\\\.\\G:", GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_NO_BUFFERING,
NULL );
if ( INVALID_HANDLE_VALUE == hPart )
dwErr = GetLastError();
else if ( !DeviceIoControl( hPart, IOCTL_STORAGE_GET_DEVICE_NUMBER,
NULL, 0,
&Info, sizeof(Info),
&dwTmp, NULL ) )
;// Error
else if ( Tmp == sizeof(Info) )
{
// Use Info ...
}