フレームワークのステート マシン
フレームワークでは、各デバイスの状態を記録するために、PnP ステート マシン、電源ステート マシン、および電源ポリシー ステート マシンを使用します。フレームワークは、システムに接続された各デバイスについて、各ステート マシンのインスタンスを作成します。
ドライバーでデバイスのステート マシンの状態を認識する必要はほとんどありません。しかし、この情報を必要とするドライバーのために、フレームワークには一連のインターフェイスが 2 種類用意されています。
ドライバーで指定する一連のイベント コールバック関数
ドライバーは、いずれかのステート マシンが特定の状態に移行したときや、特定の状態ではなくなったときに、フレームワークが次のコールバック関数のいずれかを呼び出すよう要求できます。
- EvtDevicePnpStateChange: ドライバーは WdfDeviceInitRegisterPnpStateChangeCallback を呼び出すことによってこのコールバック関数を登録します。
- EvtDevicePowerStateChange: ドライバーは WdfDeviceInitRegisterPowerStateChangeCallback を呼び出すことによってこのコールバック関数を登録します。
- EvtDevicePowerPolicyStateChange: ドライバーは WdfDeviceInitRegisterPowerPolicyStateChangeCallback を呼び出すことによってこのコールバック関数を登録します。
ステート マシンの現在の状態を返す一連のメソッド
ドライバーは、次のいずれかのメソッドを呼び出して、特定のデバイスのステート マシンのうち、いずれかの現在の状態を確認できます。