WdfDeviceInitSetPowerPageable 関数 (wdfdevice.h)
[KMDF にのみ適用]
WdfDeviceInitSetPowerPageable メソッドは、システムがスリープ状態と作業 (S0) 状態の間で遷移している間に、ドライバーがページング可能なデータにアクセスできる必要があることを電源マネージャーに通知します。
構文
void WdfDeviceInitSetPowerPageable(
[in] PWDFDEVICE_INIT DeviceInit
);
パラメーター
[in] DeviceInit
WDFDEVICE_INIT構造体への呼び出し元が指定したポインター。
戻り値
なし
解説
関数ドライバーまたはバス ドライバーが WdfDeviceInitSetPowerPageable を呼び出す場合、システムは、ドライバーのデバイスが低電力状態になったり、動作状態に戻ったりしたときに、ページング ファイルのデバイスが動作中 (D0) 状態であることを確認します。 これにより、ドライバーは、デバイスの電源切り替え中にファイル、レジストリ、およびページ プールにアクセスできます。
既定では、フレームワークは関数ドライバーのページング可能なデータにアクセスできるようにします。 このフレームワークでは、バス ドライバーが子デバイスに対して WdfDeviceInitSetPowerPageable または WdfDeviceInitSetPowerNotPageable を呼び出さない限り、バス ドライバーが列挙する子デバイスごとに親デバイスの設定を使用します。 子デバイスに対して WdfDeviceInitSetPowerPageable を呼び出すバス ドライバーを作成する場合、子デバイスのスタック内のドライバーで WdfDeviceInitSetPowerNotPageable を呼び出すことはできません。
フィルター ドライバーから WdfDeviceInitSetPowerPageable または WdfDeviceInitSetPowerNotPageable を呼び出しても効果はありません。 フレームワークでは、次の下位ドライバーが指定する設定を使用します。
ほとんどのドライバーでは 、WdfDeviceInitSetPowerPageable または WdfDeviceInitSetPowerNotPageable を呼び出す必要はありません。 代わりに、ドライバーに適した既定の設定をフレームワークに使用させる必要があります。 ただし、ドライバーが電源切り替え中にページング可能なデータ (ストレージ スタックやビデオ スタックなど) にアクセスできないドライバー スタックの一部である場合、またはドライバーが記憶域またはビデオ デバイスである可能性のあるデバイスを列挙するバス ドライバーである場合は、ドライバーは WdfDeviceInitSetPowerNotPageable を呼び出す必要があります。
ドライバーが WdfDeviceInitSetPowerInrush を呼び出す場合、 WdfDeviceInitSetPowerPageable を呼び出してはなりません。
ドライバーは 、WdfDeviceCreate を 呼び出す前に WdfDeviceInitSetPowerPageable を呼び出す必要があります。
WdfDeviceCreate の呼び出しの詳細については、「Framework デバイス オブジェクトの作成」を参照してください。
例
次のコード例では、システムがスリープ状態と動作 (S0) 状態の間で遷移している間に、ドライバーがページング可能なデータにアクセスできる必要があることを電源マネージャーに通知します。
WdfDeviceInitSetPowerPageable(DeviceInit);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfdevice.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | ChildDeviceInitAPI(kmdf)、 DeviceInitAPI(kmdf)、 DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、 PdoDeviceInitAPI(kmdf) |