我正在使用DeviceIoControl
Windows函數使用IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
來確定每個卷使用哪些分區。我使用該功能,然後檢查其駐留在磁盤我感興趣的每個卷的範圍獲取數據VOLUME_DISK_EXTENTS錯誤信息
根據這一頁:https://msdn.microsoft.com/en-us/library/windows/desktop/aa363968(v=vs.85).aspx
返回的數據應該說明每個程度以字節爲單位的偏移距離磁盤的開始,以字節爲單位的長度。但是,我收到的信息似乎是錯誤的。
我感興趣的物理磁盤是500105249280
字節長。然而,我從DeviceIoControl
獲得的數據表明,其中一個卷位於範圍爲499210256384
的範圍內,長度爲896532480
。這使得範圍的末尾在抵消500106788864
明顯超過磁盤的末尾。
這似乎與上面鏈接的文檔相沖突。任何人都可以告訴我,如果我錯過了別的東西嗎?或者這是我的個人電腦的問題?
您是如何確定物理磁盤的大小的?您是否嘗試過,例如,從相關偏移處的磁盤讀取扇區,並將其與從卷讀取的第一個扇區進行比較? –