請問:如何得到devicepath和volume name的關係 |
尚未結案
|
tandylo
一般會員 發表:3 回覆:4 積分:1 註冊:2003-09-26 發送簡訊給我 |
請問:
在指定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 發送簡訊給我 |
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 發送簡訊給我 |
感謝網友的建議,經過這段時間小第已經查出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 情況就不一樣了,小弟目前也還沒弄清楚,有需要的網友可以參考看看,若小弟所述有誤煩請指正,謝謝
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |