プロが教える店舗&オフィスのセキュリティ対策術

Windows2000のPCとあるUSB機器(セルフパワー)を接続したまま(ドライバーは認識されています。アプリは立ち上げていません。)、USB機器はそのままでPC側を先にシャットダウンすると、ブルーバック画面になり操作不能になってしまいます。ノートPCの場合は、同様のメッセージを出した後、電源を切れる旨のメッセージが出ず、勝手にレジュームします。
ブルーバック画面のメッセージは「*** STOP 何何 *** DRIVER_POWER_STATE_FAILURE 何何」です。

USB機器は外部で開発(ML60851使用)してもらった物ですが、JOB60851評価ボード(CD-ROMを紛失して基板のみ)とTechIVol8掲載のサンプルソフトの組合せでも同様の現象が起きます。
ちなみにWindows98、WindowsMeではこの現象は出ず、Windows2000でのみ起こります。
又、PCが動作している時のUSB機器の抜き差しは、Windows2000のメッセージが出て正常に活線挿抜できます。

今までは自分ではデバイスドライバーを作った事が無く、今回の件で問題を早急に解決しないといけなくて、自分でも調べようと思い、ここに書き込ませていただいています。
VC++6.0、NTDDKのBuildは何とか構築できたのですが、どこをどう追いかけたらいいのか皆目検討がつかない状態です。
何かアドバイスが有ればお願い致します。

A 回答 (1件)

「*** STOP 何何 *** DRIVER_POWER_STATE_FAILURE 何何」


の部分を、正確に記録し、マイクロソフトのサポートサイトで
検索をすると、手がかりがつかめるかもしれません。

この回答への補足

なぜか回答が入力できないので、ここに書きます。

  CQ出版のTechIVol8第7章「ML60851D評価ボード用
 テストドライバの作成」P155のリストと同じ部分で、
 WDMPNP.CのWDM_PnPAddDevice()の中で、以下の部分の
 DO_POWER_PAGABLEの1行を追加しただけで、問題は
 解決しました。(もちろん私ではなく、仕事で専門に
 されている方が見つけてくださいました。)
  TechIVol8の方も同じ部分が間違えていて、私が確認した
 限りでは、同じ様にブルーバックになりました。
  筆者様は出張中で確認は取れていません。
  沖電気様からは、TechIVol8のテストドライバで特に
 不具合は確認されない旨の回答を頂きましたが、
 沖電気様本来のドライバーは正常に動作するので、
 ドライバーの入替えがうまくいっていなかったのか
 も知れません。再度確認はしていません。

// Keep PDO/TopOfStackDeviceObject
//
deviceExtension = deviceObject->DeviceExtension;
deviceObject->Flags &= ~DO_DEVICE_INITIALIZING; // Initialize Completed
deviceObject->Flags |= DO_DIRECT_IO; // Direct I/O
deviceObject->Flags |= DO_POWER_PAGABLE;// r1.1 flag added
deviceExtension->PhysicalDeviceObject=PhysicalDeviceObject; // Keep PDO
deviceExtension->TopOfStackDeviceObject =
IoAttachDeviceToDeviceStack(deviceObject, PhysicalDeviceObject); //
Attach FDO to

以上です。

補足日時:2002/01/22 21:22
    • good
    • 0
この回答へのお礼

s13様

 アドバイスありがとうございました。
 確かに、それもやってみたのですが、一般的な事は分かったんですが、さすがに個別のドライバーソフトの範囲に入り込むような内容は出てこなかったです。英語が苦手という事もありますが。
 で、結局、投稿の最後に入れたような事で解決しました。
ありがとうございました。

お礼日時:2002/01/22 21:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!