2011-05-05 228 views
4

我的應用程序適用於Windows Vista和XP。獲取硬盤的驅動器號

在我的機器上連接的硬盤有很多。我需要從我的系統啓動硬盤的驅動器號。

通過使用GetLogicalDriveStrings函數我可以得到所有硬盤驅動器的驅動器號。但我怎麼能區分這個特定的驅動器號是我的啓動硬盤驅動器的分區名稱?

盤的結構是:

Disk0上(與此引導) - CDG

disk1- EFH

disk2- IJ

我需要得到C,d,G只要。

+0

許多問題的另一個問題,其中[karthik](http://stackoverflow.com/users/644073/karthik)或[user692270](http://stackoverflow.com/users/692270/user692270)接受@karthik'的答案。嚴重的是,你患有自卑感;去找你的醫生。 – 2011-09-27 07:41:33

回答

5

致電GetLogicalDrives獲取所有可用的驅動器號。

致電GetSystemDirectory獲取包含操作系統的驅動器。

打開使用的CreateFile( 「\。\ C:」 音量:返回的與GetSystemDirectory返回的驅動器盤符

呼叫DeviceIControl,...

這裏替換C。與IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS處理代碼來獲取硬盤編號。

現在你知道包含操作系統的驅動器的硬盤數量。

在所有其他驅動器號上重複CreateFileDeviceIoControl並將硬盤號碼與先前獲得的硬盤號碼進行比較。

+0

許多問題的另一個問題是[karthik](http://stackoverflow.com/users/644073/karthik)或[user692270](http://stackoverflow.com/users/692270/user692270)接受@karthik的答案。嚴重的是,你患有自卑感;去找你的醫生。 – 2011-09-27 07:40:53