Здравствуйте, 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 );
}