Номер драйва по логической букве
От: _DiZ  
Дата: 23.10.06 08:37
Оценка:
Подскажите как узнать физический номер винта, на котором находится определенный логический раздел (буква раздела известна).
Re: Номер драйва по логической букве
От: MShura  
Дата: 23.10.06 08:40
Оценка:
_DZ>Подскажите как узнать физический номер винта, на котором находится определенный логический раздел (буква раздела известна).

IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
Re[2]: Номер драйва по логической букве
От: _DiZ  
Дата: 23.10.06 09:49
Оценка:
Перед тем как вызвать DeviceIoControl, необходимо создать handle. Непонятно какое имя надо задать, чтобы сработал CreateFile?
Re[3]: Номер драйва по логической букве
От: MShura  
Дата: 23.10.06 10:20
Оценка:
_DZ>Перед тем как вызвать DeviceIoControl, необходимо создать handle. Непонятно какое имя надо задать, чтобы сработал CreateFile?

Поскольку нужен handle тома, а у Вас есть буква (например "G:"), то

hVolume = CreateFileW( L"\\\\.\\G:",
                       FILE_READ_DATA|FILE_WRITE_DATA,
                       FILE_SHARE_READ|FILE_SHARE_WRITE,
                       NULL,
                       OPEN_EXISTING,
                       FILE_ATTRIBUTE_NORMAL,
                       NULL );
Re[4]: Номер драйва по логической букве
От: _DiZ  
Дата: 23.10.06 10:37
Оценка:
Спасибо, работает
Re[5]: Номер драйва по логической букве
От: MShura  
Дата: 23.10.06 11:18
Оценка:
_DZ>Спасибо, работает

Учтите, что том может располагаться на нескольких дисках, т.е. вы должны правильно реагировать на коды ошибок DeviceIoControl.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.