WdfDeviceInitRegisterPowerPolicyStateChangeCallback 関数 (wdfdevice.h)

[KMDF にのみ適用]

注意

このメソッドは、Microsoft の内部使用のみを目的としています。

WdfDeviceInitRegisterPowerPolicyStateChangeCallback メソッドは、デバイスの電源ポリシー状態マシンが状態を変更したときにフレームワークが呼び出すドライバー指定のイベント コールバック関数を登録します。

構文

NTSTATUS WdfDeviceInitRegisterPowerPolicyStateChangeCallback(
  [in] PWDFDEVICE_INIT                                       DeviceInit,
  [in] WDF_DEVICE_POWER_POLICY_STATE                         PowerPolicyState,
  [in] PFN_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION EvtDevicePowerPolicyStateChange,
  [in] ULONG                                                 CallbackTypes
);

パラメーター

[in] DeviceInit

WDFDEVICE_INIT構造体への呼び出し元が指定したポインター。

[in] PowerPolicyState

ドライバー 通知を要求している電源ポリシー コンピューターの状態を識別するWDF_DEVICE_POWER_POLICY_STATE列挙子。

[in] EvtDevicePowerPolicyStateChange

ドライバーの EvtDevicePowerPolicyStateChange イベント コールバック関数への呼び出し元が指定したポインター。

[in] CallbackTypes

WDF_STATE_NOTIFICATION_TYPE型指定された列挙子の ORed の組み合わせ。

戻り値

WdfDeviceInitRegisterPowerPolicyStateChangeCallback でエラーが発生しない場合は、STATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが検出されました。
STATUS_INSUFFICIENT_RESOURCES
操作を完了するためのメモリが不足しています。

注釈

ドライバーが WdfDeviceInitRegisterPowerPolicyStateChangeCallback を呼び出す場合は、 WdfDeviceCreate を呼び出す前に呼び出す必要があります。

WdfDeviceInitRegisterPowerPolicyStateChangeCallback の詳細については、「フレームワークの State Machines」を参照してください。

次のコード例では、デバイスの電源ポリシー状態マシンが状態を変更したときにフレームワークが呼び出すイベント コールバック関数を登録します。

status = WdfDeviceInitRegisterPowerPolicyStateChangeCallback(
                                 DeviceInit,
                                 WdfDevStatePwrPolCheckPowerPageable,
                                 PciDrvPowerPolicyStateChangeCallback,
                                 StateNotificationAllStates
                                 );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf)InitFreeDeviceCallback(kmdf)InitFreeDeviceCreate(kmdf)InitFreeNull(kmdf)KmdfIrql(kmdf)、KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、PdoDeviceInitAPI(kmdf)PdoInitFreeDeviceCallback(kmdf)PdoInitFreeDeviceCreate(kmdf)