Re[6]: номер устройства по имени диска
От: MShura  
Дата: 05.02.04 12:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, ДимДимыч, Вы писали:


ДД>>Здравствуйте, 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 ...
  }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.