Failed to receive IRP_MN_REMOVE_DEVICE after receiving IRP_MN_SURPRISE_REMOVAL

這個錯誤發生在PNP Surprise Remove Device Test中:


本篇文章主要分享我的解決方式,不一定適用於所有情況。

我們發生這問題的原因,是由於處理IRP_MN_REMOVE_DEVICE的程式,預期device必須處於某一個狀態,然而HLK test並非照程式流程執行。因此只要在接收到IRP_MN_REMOVE_DEVICE後,正常移除使用到的資源即能解決問題。

同樣的情況我們也在執行PNP Cancel Stop Device Test與PNP Cancel Remove Device Test發生。