2010-08-04 33 views
0

對不起,如果這與以前的問題類似,但這是我剛纔注意到的。 我可以檢測到我的設備何時連接到系統(通過USB)並正確捕獲信息,但是如果我拔下並插回設備,嘗試通過CreateFile()函數訪問設備始終返回錯誤:ERROR_GEN_FAILURE 31(0x1F )其轉換爲 - 附接到系統中的設備不能正常工作,這是然而,試圖recieving的DBT_DEVICEARRIVAL消息,該消息由microsoft's自己的定義說「的設備或塊的媒體已被插入並且現在是後可用「。我相信這裏發生的事情是錯誤與設備未準備好有關,即使報告已準備就緒,因爲如果我再次重新枚舉系統上的設備列表,設備已準備就緒。有沒有其他人遇到過這個問題?或者有什麼我錯過/忽略?如何檢測連接到系統的設備何時可以使用?

+0

你可能想給一個線索,什麼操作系統你正在談論 - 這聽起來像某些版本的Windows,但誰知道? (提示:標籤在這裏很有用) – 2010-08-04 15:42:01

+0

我在Windows 7 32bit – 2010-08-04 15:46:30

+1

如果你*不*拔掉並重新連接,它是否正常工作?這聽起來像是你試圖使用舊的參考,當你重新連接設備時,你真的需要一個新的參考。 – Jay 2010-08-04 17:04:06

回答

0

處理這個問題的最簡單方法就是通過WMI。

在這裏看到:http://dotnetslackers.com/community/blogs/basharkokash/archive/2008/02/06/usb-port-insert-remove-detection-using-wmi.aspx

我已經在過去的USB驅動器檢測使用WMI,它是死的簡單和回調使事情變得很乾淨

+0

道歉我對WMI一無所知 – 2010-08-05 07:50:18

+0

是的,我也沒有第一次感到厭倦。但是,看看我發佈的文章。很簡單。 – 2010-08-05 17:09:05

+0

對不起,但這個答案是不正確的。描述的事件僅指示設備連接到系統,並且可能從設備檢索某些信息。但問題是「何時準備使用」。在我的選擇中,這包括司機成功開始,以便我能夠使用該設備。但是WMI事件不包括這一點。例如:我連接了FTDI設備並使用WMI來檢測它何時連接。它在WMI事件被觸發和我實際能夠打開設備之間持續約5秒鐘。 – 0xBADF00D 2016-01-07 08:13:27

相關問題