PnP と電源管理の移植
WDF はプラグ アンド プレイ (PnP) と電源管理のインテリジェントなデフォルトを実装しているため、単純なドライバー (ほとんどのフィルター ドライバーを含む) では、PnP の基本的な要件を満たすために追加のコードは必要ありません。 フレームワークは、PnP、電源管理、および電源ポリシーのステート マシンを自動的に作成および管理します。 既定:
- FDO はデバイスの電源ポリシーを所有します。
- EvtDriverDeviceAddコールバックのみが必要です;他のすべての PnP と電源管理コールバックは省略可能です。 ドライバーは、デバイス固有の機能をサポートする他のコールバックを実装します。
- フレームワークは、すべてのWDFQUEUE オブジェクトの電源管理を実装しているため、デフォルトでは、デバイス ハードウェアが使用可能な場合 (つまり、D0 状態) にのみ、キューからドライバーの I/O イベント コールバックにリクエストがディスパッチされます。
デバイスが割り込みまたはマップ メモリをサポートしていない場合、または電源切り替えが発生したときに初期化または初期化解除が必要な場合、WDF ドライバーは EvtDriverDeviceAddコールバックのみを必要とします。 デバイスが挿入され、または取り外されると、フレームワークは定義された順序で PnP および電源イベント コールバックを呼び出します。 このセクションのトピックでは、 PDOs、FDOs、およびフィルター DOsによって若干異なる順序について説明します:
- 関数またはフィルター デバイス オブジェクトの電源投入シーケンス
- 物理デバイス オブジェクトの電源投入シーケンス
- 関数またはフィルター デバイス オブジェクトの電源ダウンと取り外しのシーケンス
- 物理デバイス オブジェクトの電源ダウンと取り外しのシーケンス
- 突然の取り外しのシーケンス
各マイナー PnP および 電源 IRP コードに対応するコールバックの完全なリストについては、WDM IRPs and WDF Event Callback Functionsをご参照ください。
フレームワーク ベースのドライバーでの PnP と電源管理のサポートの詳細については、次のトピックをご参照ください: