首先通過指定guid,用setupdigetclassdevs,得到harddisk類和volume兩大類裝置的所有裝置資訊。
define_guid /
(harddisk_guid, 0x53f56307, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
define_guid /
volume_guid, 0x53f5630d, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
hdevinfoset = setupdigetclassdevsw(lpguid, null,null,digcf_present|digcf_inte***cedevice);
接著用setupdienumdeviceinte***ces依次列舉裝置資訊集中各個裝置的介面資訊。
如果成功,進一步呼叫setupdigetdeviceinte***cedetail得到每個裝置的詳細資訊。
然後依次用cm_get_parent、cm_get_device_id取得該裝置例項的device instance id 這個東西是類似下面這樣的串:pciide/idechannel/4&e3ec092&0&0、usb/vid_0d7d&pid_0150/4d3b190303c0。
想必你已經注意到usb裝置都以usb開頭,同時包含了該裝置的pid和vid,這樣就可以判斷是否是特定廠商的裝置。接著要取得該usb裝置對應的碟符,因為每個裝置可能包含多個卷,所以用上面類似的方法取得所有卷的資訊,通過比對裝置號可以判斷多個卷是否屬於同乙個裝置,接著用捲裝置的物理裝置名稱反查符號連線(querydosdevice)就能得到該卷對應的碟符,進一步可以得到,乙個物理磁碟所有卷的碟符。
LVM邏輯盤卷管理實戰
lvm是邏輯盤卷管理 logical volume manager 的簡稱,它是 linux 環境下對磁碟分割槽的進行管理的一直機制,是建立在硬碟和分割槽之上的邏輯層,來為檔案系統遮蔽下層的磁碟分割槽布局,從而提高磁碟分割槽管理的靈活性。可以看到物理層位於最底層,它是包含 lvm相關引數的物理層 邏...
linux 如何掛載 系統的物理 D盤
你用fdisk k沒有看到d盤很正常呀,因為d盤那塊硬碟並沒有加到vmware上,也就是說d盤沒有安裝到你的虛擬計算機上,怎麼可能在linux上看到呢!加入電腦硬碟的方法是 點edit virtual machine settings add 選中hard disk next 選擇use a phy...
CreateFile開啟U盤的方法1 邏輯方式
在網上發現createfile開啟u盤的方法很多,總結起來總共兩種,一種是通過邏輯方式碟符開啟u盤,一種是通過物理驅動方式開啟u盤。下面具體介紹 1.通過邏輯方式碟符開啟u盤 通過getlogicaldrivestrings函式獲取所有碟符 像a,c,d等 放到乙個陣列中 迴圈遍歷 得到的陣列,通過...