none
WHQL 1.5--IO Cancellation with Direct IO crash RRS feed

  • 問題

  • 我參考winddk 裡的vhidmini 寫了一個 hid mini class driver的程式,在windows 7 使用上看起來是沒有問題的,但在windows 7 上執行whql測試時遇到了系統crash的問題。
    在進行whql 1.5 測試中有一個測試項為 IO Cancellation with Direct IO時,在enable Driver verifier 後的重新開機過程中,我發現我的driver會收到一個PowerDeviceUnspecified 的電源IRP,當我把這個PowerDeviceUnspecified 的電源IRP直接往下丟後,就產生當機了,也就無法進行測試,這部分電源管理的code 我是完全沒有修改原本vhidmimi 裡的電源管理的部份,大部分的電源irp我都是這樣處理。
    PoStartNextPowerIrp(Irp);
    IoSkipCurrentIrpStackLocation(Irp);
    ntStatus = PoCallDriver(GET_NEXT_DEVICE_OBJECT (DeviceObject), Irp);

    我試著將這個 power IRP Pending 這個方法後還是會當機,也有人說原本的vhidmini 的電源管理程式碼需要修改,否則跑whql時會有問題,但我目前沒有任何頭緒及方向去思考如何處理電源管理的部分,或是能夠避開 enable Driver verifier 後的重新開機過程中會當機的問題,希望大家能夠提供我方向或是sample code。

    謝謝

    2010年4月29日 上午 09:23

所有回覆