これが以前の質問と似ている場合は申し訳ありませんが、これは私が気付いたばかりのことです。デバイスが(usbを介して)システムに接続されていることを検出し、メッセージを正しくトラップできますが、デバイスを取り外して再度接続すると、 CreateFile()関数を介してデバイスにアクセスしようとすると、常にエラーが返されます:ERROR_GEN_FAILURE 31(0x1F )これは次のように変換されます-システムに接続されたデバイスが機能していませんが、これは、Microsoft独自の定義による「デバイスまたはメディアが挿入されて使用可能になりました」というDBT_DEVICEARRIVALメッセージを受信した後に試行されます「ここで起こっていることは、システム上のデバイスのリストを再度列挙すると、デバイスの準備ができているため、準備ができていると報告されていても、デバイスの準備ができていないことにエラーが関係していると思います。他の誰かがこの問題に遭遇し、それを乗り越えましたか?それとも私が見逃している/見落としているものがありますか?
2603 次
1 に答える
0
これに対処する最も簡単な方法であるIMOは、WMIを使用することです。
ここを参照してください:http://dotnetslackers.com/community/blogs/basharkokash/archive/2008/02/06/usb-port-insert-remove-detection-using-wmi.aspx
私は過去にUSBドライブの検出にWMIを使用しましたが、それは非常に単純で、コールバックによって物事がかなりきれいになります
于 2010-08-04T19:42:18.833 に答える