2012-03-12 86 views
3

我怎樣才能得到具有WinApi和C++的物理磁盤的列表邏輯磁盤的物理磁盤列表。主要目標決定物理和邏輯磁盤之間的鏈接。謝謝!如何獲取物理和邏輯磁盤的列表?

+2

我沒有時間完整回答,但物理磁盤的卷爲'FindFirstVolume','SetupDiGetClassDevs'爲物理磁盤,請記住,卷可能跨越多個磁盤。 – avakar 2012-03-12 08:00:40

+0

我想avakar的意思是這可能是記錄的那種信息。你有沒有看過文檔,如果是的話,有沒有你不明白的東西? – 2012-03-12 08:26:41

回答

2

比avakar的想法更容易解決:QueryDosDevice。您需要傳遞驅動器盤符,您可以從GetLogicalDriveStrings中獲得驅動器盤符,並且可以返回物理名稱。

+1

請注意邏輯驅動器和卷不相同。多個驅動器可以引用相同的音量,或根本沒有音量(如果驅動器指向網絡位置)。 – avakar 2012-03-12 09:16:16

+0

謝謝!這工作! – lebron2323 2012-03-12 09:20:29

+0

@avakar:是的,兩者之間的關係可能相當複雜(比如我也忽略了分層存儲)。任何簡單的解決方案都會漏掉不尋常的情況 – MSalters 2012-03-12 09:28:40