我正在使用一個小工具來記錄USB設備中的活動。 我的工具作爲一個窗口服務來捕捉所有的設備事件,基本上我開始監視USB設備,只要我趕上一個DBT_DEVICEARRIVAL
事件。在此之後,我需要儘快停止顯示器,只要我得到DBT_DEVICEQUERYREMOVE
(否則我的服務將拒絕設備安全彈出)。問題在於該工具應該能夠監視多個設備,所以我需要能夠確定用戶試圖彈出哪個設備。 我發現DBT_DEVICEQUERYREMOVE
事件攜帶DEV_BROADCAST_HANDLE
結構。我試圖從這個結構中提取一些有用的信息,可以讓我確定哪個設備被彈出。我發現設備存在句柄,我嘗試使用系統函數GetFinalPathNameByHandle
提取驅動器盤符,但無法正常工作(返回空值)。 任何想法我怎麼能做到這一點?從C#中的設備句柄獲取驅動器號
非常感謝!
@MSalters我的問題是一個具體的問題,不包括在你的評論中陳述的問題。有任何想法嗎? –