很難的問題: 請問如何用程式安全移除USB的Device?? |
尚未結案
|
poyulin
一般會員 發表:10 回覆:24 積分:6 註冊:2002-11-25 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
IBMUSER
一般會員 發表:0 回覆:7 積分:11 註冊:2002-12-02 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
引言: 如果須要使用API安全移除USB Device,先決條件必須要知道這USB裝置的 DeviceID,再讀取所有裝置的DeviceID,當找到符合你要移除的DeviceID, 使用Windows API function "SetupDiCallClassInstaller",就可安全移除想請教一下! 1. 您這裡說的DeviceID是, Device ID 在PCI Configuration Space裡的那一個嗎? 2. MSDN 和SDK都找不到你說的"SetupDiCallClassInstaller"這個API. 不知是 不是記錯了還是有另一個呢? |
IBMUSER
一般會員 發表:0 回覆:7 積分:11 註冊:2002-12-02 發送簡訊給我 |
1. 是,觀念是一樣的,每一個Device必須有一個ID,如USB Device的ID像
USB\VID_FFFF&PID_0001,PCI是PCI\...,
VENDOR ID簡稱VID,當你Plug-In你的Device時
Windows會依照VID去Enum Root Registry key尋找是否有Compatible ID,
如果有Windows將自動載入Driver,否則Windows將通知user載入Driver,
VID是廠商唯一的ID,PID則是Product ID.
關於本題主旨,有些裝置如Storage Class Driver(行動碟,PCMCIA),在
Driver上的設計就是要讓user知道你已經UnPlug,USB Printer就沒這必要.
2. SetupDiCallClassInstaller的function於WindowsDDK中說明,(W2KDDK or
XP DDK)
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
引言: 1. 是,觀念是一樣的,每一個Device必須有一個ID,如USB Device的ID像 USB\VID_FFFF&PID_0001,PCI是PCI\..., VENDOR ID簡稱VID,當你Plug-In你的Device時 Windows會依照VID去Enum Root Registry key尋找是否有Compatible ID, 如果有Windows將自動載入Driver,否則Windows將通知user載入Driver, VID是廠商唯一的ID,PID則是Product ID. 關於本題主旨,有些裝置如Storage Class Driver(行動碟,PCMCIA),在 Driver上的設計就是要讓user知道你已經UnPlug,USB Printer就沒這必要. 2. SetupDiCallClassInstaller的function於WindowsDDK中說明,(W2KDDK or XP DDK)如果我沒有弄錯你的意思的話, 你說的是不是要用寫個driver才能用這個方式 移除呢? 這樣的話, 就和我原先的想法一樣, device的事只能由driver來call driver的funtion通知OS. |
IBMUSER
一般會員 發表:0 回覆:7 積分:11 註冊:2002-12-02 發送簡訊給我 |
|
GaryCheng
一般會員 發表:1 回覆:2 積分:0 註冊:2003-12-24 發送簡訊給我 |
|
poyulin
一般會員 發表:10 回覆:24 積分:6 註冊:2002-11-25 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
|
GaryCheng
一般會員 發表:1 回覆:2 積分:0 註冊:2003-12-24 發送簡訊給我 |
各位大哥好~~~
以下是我的GUID宣告,
GUID GUID_DEVCLASS_NET = {0x4d36e999L, 0xe325, 0x11ce, {0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}}; 可否用SetupDiCallClassInstaller來作USB Device Enable和Disable呢?? 我是用 SetupDiCallClassInstaller{
DIF_PROPERTYCHANGE,???,???
}
裡面的其他參數就不知道要如何去取得了~~~ 至於前面那 Request_Device_Eject(..)
由於小弟功力尚淺
所以不是粉清楚要去哪裡呼叫Enable以及Disable 感謝大家的熱烈回應
謝謝幫助
|
zcecil
初階會員 發表:0 回覆:28 積分:45 註冊:2003-06-27 發送簡訊給我 |
|
okeyla
一般會員 發表:51 回覆:20 積分:19 註冊:2003-06-12 發送簡訊給我 |
引言: 請參考這個範例: 發表人 - axsoft 於 2004/02/09 12:44:32會出現以下的errorㄟ?!?!?! 該怎麼解決呢??? c:\ntddk\inc\cfgmgr32.h(122) : error C2146: syntax error : missing ';' before identifier 'LOG_CONF' c:\ntddk\inc\cfgmgr32.h(122) : fatal error C1004: unexpected end of file found |
8866
中階會員 發表:27 回覆:147 積分:69 註冊:2002-10-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |