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 之前调用 WdfDeviceCreate

有关 WdfDeviceInitRegisterPowerPolicyStateChangeCallback 的详细信息,请参阅 框架中的状态机

示例

下面的代码示例注册了一个事件回调函数,当设备的电源策略状态机更改状态时,框架将调用该函数。

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

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
标头 wdfdevice.h (包括 Wdf.h)
Library Wdf01000.sys (请参阅框架库 Versioning.)
IRQL PASSIVE_LEVEL
DDI 符合性规则 ChildDeviceInitAPI (kmdf) DeviceInitAPI (kmdf) DriverCreate (kmdf) InitFreeDeviceCallback (kmdf) InitFreeDeviceCreate (df) InitFreeNull (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、KmdfQlExplicit (kmdf) , PdoDeviceInitAPI (kmdf) PdoInitFreeDeviceCallback (kmdf) PdoInitFreeDeviceCreate (kmdf)