Re[3]: DeviceIoControl and IOCTL_DISK_GET_DRIVE_GEOMETRY
От: MShura  
Дата: 07.04.05 14:17
Оценка:
Здравствуйте, misha_irpen, Вы писали:

_>Здравствуйте, MShura, Вы писали:


MS>>Для получения размера диска надо пользоваться IOCTL_DISK_GET_PARTITION_INFO указывая handle диска.

MS>>Работает в Win2K+
_>Секунду, о каком PARTITION_INFO вообще может идти речь в том случае когда Handle указывает на RAW-device без разделов, файловых систем и вообще корректного MBR?

_>Ранее приведенный мной случай — частный, в общем же случае необходимо определить полный размер неразмеченного устройства.


Вот о каком handle идет речь.
И пусть слова PARTITION_INFORMATION Вас не смущают

  ///////////////////////////////////////////////////////////
  // OpenHDD
  //
  // Opens HDD by number
  ///////////////////////////////////////////////////////////
  HANDLE OpenHDD( 
      IN DWORD nDisk
      )
  {
    WCHAR   szDiskName[32];

    swprintf( szDiskName, L"\\\\.\\PhysicalDrive%x", nDisk );

    return CreateFileW( szDiskName, GENERIC_READ|GENERIC_WRITE,
                      FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
                      NULL,
                      OPEN_EXISTING,
                      FILE_ATTRIBUTE_NORMAL,//             /*FILE_FLAG_WRITE_THROUGH|*/FILE_FLAG_NO_BUFFERING,
                      NULL );
  }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.