Как получить поставщика HD / серийный с помощью Windows API - PullRequest
2 голосов
/ 03 августа 2010

Я говорю о физическом жестком диске, а не томе / разделе / ​​логическом диске.Так что обычно предлагаемая функция GetVolumeInformation не применима в моем случае.

Если быть точным: я работаю напрямую с диском, который еще не был размечен.Я открываю дескриптор к нему через функцию CreateFile:

hDisk = CreateFile(
    _T("\\\\.\\PHYSICALDRIVE0"),
    GENERIC_READ|GENERIC_WRITE,
    FILE_SHARE_READ|FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    FILE_FLAG_OVERLAPPED|FILE_FLAG_NO_BUFFERING,
    NULL);

Я могу читать / писать прямо на диск, используя этот дескриптор.Также есть возможность запрашивать различные свойства диска с помощью функции DeviceIoControl.Однако я не смог найти способ запросить информацию о продавце / серийных свойствах диска, которые видны в диспетчере устройств.

1 Ответ

5 голосов
/ 03 августа 2010

Взгляните на DiskId32 . Исходный код там тоже есть. Идея состоит в том, чтобы использовать DFP_RECEIVE_DRIVE_DATA с DeviceIoControl.

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