2010-08-03 47 views
2

我在說的是物理磁盤驅動器,而不是卷/分區/邏輯驅動器。所以通常建議的GetVolumeInformation函數不適用於我的情況。如何使用Windows API檢索HD供應商/序列號

確切地說:我直接使用尚未分區的磁盤。 我通過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函數來查詢各種磁盤屬性。但是我找不到查詢設備管理器中可見的磁盤供應商/串行屬性的方法。

+0

只是猜測:你想要創建某種授權系統嗎? – ereOn 2010-08-03 12:05:22

+0

使用WMI,Win32_DiskDrive類 – 2010-08-03 12:07:13

+0

ereOn:不,我正在爲HD驅動器構建壓力測試工具。 – valdo 2010-08-03 12:35:07

回答

5

看看DiskId32。源代碼也在那裏。這個想法是使用DFP_RECEIVE_DRIVE_DATADeviceIoControl

相關問題