PNPDTESTでPNPFILTERがフリーズする
開発したUSBデバイスドライバを、Plag and Play Driver Test(PNPDTEST)で動作確認するとPNPFILTERがフリーズする現象が発生し、PNPDTESTが最後まで進みません。
このドライバはWDMで開発し、WinXPでのWHQL実績あります。
この度の不具合がネックでWHQL再取得が困難な状況です。対処方法を御教示ください。
<テスト内容>
ツール:PNPDTEST(WLK1.5)
設 定:Power Test OptionsでEnable Power TestsをSleep state=S4に設定にしてTest Surprise Remove実行。
その他:Power Test Optionsを設定せずにTest Surprise Remove実行した場合は最後まで正常に動作する。Verifer有効
<現象詳細>
WindbgにPNPFILTRが出力するログを下記に示す。
ログ最後尾("PNPFILTR: Waiting for result to be stored")以降、PNPFILTRがダンマリになりハイバネート状態にならない(ディスプレイは電源断となる)。一定時間経過後、DRIVER_POWER_STATE_FAILURE(9f)となる。
ドライバでIRP_MN_SURPRISE_REMOVAL処理後、IRP_MN_REMOVE_DEVICE要求受信前のPNPFILTRの処理中でフリーズしているものと推測する。
<発生頻度>
必ず発生
<参考情報>
他USBデバイス(市販のUSBメモリ)でも同一の手順で同一の現象が発生することを確認
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_POWER_STATE_FAILURE (9f)
A driver is causing an inconsistent power state.
Arguments:
Arg1: 00000004, The power transition timed out waiting to synchronize with the Pnp
subsystem.
Arg2: 00000258, Timeout in seconds.
Arg3: 849b4798, The thread currently holding on to the Pnp lock.
Arg4: 82962b24
Start: Surprise Remove, TUID=
Running Surprise Removal Test on node with hwid:
USB\VID_XXXX&PID_XXXX&REV_0100
PNPFILTR: Received IOCTL_QUERY_DEVICE_COUNT
PNPFILTR: Received IOCTL_QUERY_HARDWARE_ID_SIZE for PDO 0x86683030
PNPFILTR: Received IOCTL_QUERY_HARDWARE_ID for PDO 0x86683030
PNPFILTR: Received IOCTL_SURPRISE_REMOVE_DEVICE for PDO 0x86683030
PNPFILTR: Calling IoInvalidateDeviceState to start rebalance on PDO 86683030
PNPFILTR: Received IRP_MN_QUERY_PNP_DEVICE_STATE for stack with PDO 0x86683030
PNPFILTR: FilterCompletionRoutine Completed, event set.
PNPFILTR: Completing IRP_MN_QUERY_PNP_DEVICE_STATE for PDO 0x86683030 with status 0x00000000 and information 0x00000004
PNPFILTR: Received IRP_MN_QUERY_DEVICE_RELATIONS which I am simply passing down
PNPFILTR: Received IRP_MN_SURPRISE_REMOVAL for stack with PDO 0x86683030
PNPFILTR: FilterSurpriseRemove returning 0x00000004 for stack with PDO 0x86683030
PNPFILTR: Received IRP_MN_REMOVE_DEVICE for stack with PDO 0x86683030
PNPFILTR: Setting the test completed event
PNPFILTR: Waiting for result to be stored

>
> このドライバはWDMで開発し、WinXPでのWHQL実績あります。
> 他USBデバイス(市販のUSBメモリ)でも同一の手順で同一の現象が発生することを確認
> この度の不具合がネックでWHQL再取得が困難な状況です。対処方法を御教示ください。
情報が全く無いのですが、テストを実行しているマシンが一番怪しいと思います。
Windowsシステムロゴを取得している等それなりの確かなマシンを使用して、Windowsロゴ取得済みのデバイスだけで固めて、OSをクリーン・インストールして、ウィルスソフトなどを含めて余計なアプリケーションは一切インストールしないで、Windows Updateもしないで実行してみてはいかがでしょうか。
> 御回答有難うござ
>
御回答有難うございます。
OSをクリーン・インストールした環境でテストしているのですが、他のマシンでも環境構築して動作確認してみます。