據我瞭解的Windows驅動程序(FTDISK)用於發現系統上的每個卷創建對象「HardDiskVolume」爲它創建註冊表記錄:Windows如何計算卷唯一ID?
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\
\??\Volume{GUID} = BINARY_DATA
從那一刻起卷安裝爲\??\Volume{GUID}
BINARY_DATA
用於在同一註冊表配置單元中將此驅動器映射到\DosDevices\<DISK_NAME>
,以便磁盤具有字母。
BINARY_DATA對於音量必須是唯一的,即使將該磁盤放入另一臺PC也不應更改,對嗎?
我qunestion是:
- 什麼是GUID在這裏?它是每次Windows啓動時由ftdisk生成的隨機數嗎?
- Windows如何計算BINARY_DATA?
我讀過lpVolumeSerialNumber
使用GetVolumeInformation
。它只是一個長整數,看起來不像這個BINARY_DATA
。
我相信BINARY_DATA
是lpVolumeSerialNumber
功能(這是由OS時產生量格式)和別的東西:
BINARY_DATA= F(VolumeSerialNumber, SOMETHING).
是什麼東西嗎?
我已經看過MSDN和Russinovich編寫/所羅門的書,仍然無法得到它..
哦,我找到了。
它說:「註冊表中存儲的基本磁盤卷驅動器號和卷名稱的值是Windows NT 4樣式的磁盤簽名和與該卷關聯的第一個分區的起始偏移量」。
但什麼是「Windows NT 4風格的磁盤簽名」?
即「四字節的磁盤簽名就是在每個硬盤的第一個扇區」
所以我使用HXD工具,發現從我BINARY_DATA 這四個字節我在1B0行和08到0B列找到它。
貌似有在互聯網上多了一個人,誰知道這件事: http://www.pcreview.co.uk/forums/image-copy-drive-wont-boot-properly-t3761034.html))
所以,如果我改變MBR磁盤上它會失去它的信:)
在答案框中發佈您的答案,並獎勵自己一些觀點! – ixe013