線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1853
推到 Plurk!
推到 Facebook!

請問:如何得到devicepath和volume name的關係

尚未結案
tandylo
一般會員


發表:3
回覆:4
積分:1
註冊:2003-09-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-13 14:46:32 IP:61.220.xxx.xxx 未訂閱
請問: 在指定classguid後,透過SettupDiGetClassDevs, SetupDiEnumDeviceInterfaces,SetupDiGetDeviceInterfaceDetail.可以得到 device path的資訊,但是要如何才能知道他們和drive name之間的對應呢? 比方說當我得到device path = \\?\storage#volume#1&30a96598&0&signature7c8cf012offset7e00lengthf90d7a00#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}. 這樣的字串,但它是a,b,c,d哪一drive呢? 另外是否有人知道要如何知道USB card reader發生card change呢(除了定時pooling之外)? winxp似乎有提供較多的支援,不過程式希望在98/2k也能work. 謝謝.
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-23 14:41:11 IP:61.221.xxx.xxx 未訂閱
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class 有無興趣試試用regedit 到上面的路徑找一下你所取得的device path中最後被{}起來的機碼, 再比對一下機碼內 0001中的DriverDesc名稱是否就是你要的drive name , 0001是因為您的device path中volume#1 為1故比對0001機碼, 因為我不懂的如何使用您所使用方法取得device path,所以以上只是猜測喔 學習中請大家多多指導呦~~ ☆星霧☆(Mineg Chien WU)
tandylo
一般會員


發表:3
回覆:4
積分:1
註冊:2003-09-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-27 11:15:37 IP:61.220.xxx.xxx 未訂閱
感謝網友的建議,經過這段時間小第已經查出device 和volumn的關係可以在registry中找到,比方說一個USB cardreader若是drive I:,則在/HKEY_LOCAL_MACHINE/SYSTEM/MountedDevices 中可以看到 \Dosdevices\I: 這組key,及後面一串字串value,在這字串值中有"\??\STORAGE#RemovableMedia#8&db21410&0&RM#{....},其中"8&db21410&0"字串 再對應到 \enum\STORAGE\RemovableMedia\8&db21410&0&RM 再對應到USB及USBSTOR,即可知道drive I: 對應的phical device是什麼. 需要用到setupdixxx 的API,以及cfgmgr32.dll 中的API 以上是針對win2k/xp(nt 不確定),至於98/me 情況就不一樣了,小弟目前也還沒弄清楚,有需要的網友可以參考看看,若小弟所述有誤煩請指正,謝謝
系統時間:2024-04-26 12:30:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!