Получить букву диска жесткого диска - PullRequest
4 голосов
/ 05 мая 2011

Мое приложение для Windows Vista и XP.

Есть больше, чем на жестком диске, подключенном к моей машине.Мне нужно получить буквы диска с жесткого диска, с которого загружается моя система.

Используя функцию GetLogicalDriveStrings, я могу получить буквы дисков всех жестких дисков.Но как я могу различить, что именно эта буква диска является именем раздела моего загрузочного жесткого диска?

Структура дисков:

disk0 (загрузка с этим) - CDG

диск1 - EFH

диск2 - IJ

Мне нужно получить только C, D, G.

1 Ответ

5 голосов
/ 05 мая 2011

Вызовите GetLogicalDrives , чтобы получить все доступные буквы диска.

Вызовите GetSystemDirectory , чтобы получить диск с ОС.

Откройтетом с использованием CreateFile ("\. \ C:", ...

Здесь замените C: на букву диска, возвращенную в GetSystemDirectory.

Вызов DeviceIControl возвращенного дескриптора с кодом IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS для получения номера жесткого диска.

Теперь вы знаете номер жесткого диска, на котором установлена ​​ОС.

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

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