EVT_WDF_DEVICE_D0_ENTRY回调函数 (wdfdevice.h)
[适用于 KMDF 和 UMDF]
驱动程序的 EvtDeviceD0Entry 事件回调函数执行驱动程序设备进入 D0 电源状态时所需的操作。
语法
EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;
NTSTATUS EvtWdfDeviceD0Entry(
[in] WDFDEVICE Device,
[in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}
参数
[in] Device
框架设备对象的句柄。
[in] PreviousState
一个WDF_POWER_DEVICE_STATE类型的枚举器,用于标识以前的设备电源状态。
返回值
如果 EvtDeviceD0Entry 回调函数未遇到错误,则必须返回STATUS_SUCCESS或NT_SUCCESS ( 状态) 等于 TRUE 的其他状态值。 否则,它必须返回NT_SUCCESS (状态) 等于 FALSE 的状态值。
有关此回调函数的返回值的详细信息,请参阅 报告设备故障。
在 EvtDeviceD0Entry 回调函数返回状态值后,框架不会调用驱动程序的 EvtDeviceD0Exit 回调函数,NT_SUCCESS (状态) 等于 FALSE。
注解
若要为设备注册 EvtDeviceD0Entry 回调函数,驱动程序必须调用 WdfDeviceInitSetPnpPowerEventCallbacks。
如果驱动程序为设备注册了 EvtDeviceD0Entry 回调函数,则每次设备进入其工作 (D0) 状态时,框架都会调用该函数。 发生以下情况之一时,设备将进入 D0 状态:
- (枚举设备,因为设备已接通电源或系统已重新启动) 。
- 系统及其所有设备从低功耗状态返回到其工作状态。
- 设备在进入低功耗状态后将恢复其工作状态,因为设备处于空闲状态, (如果设备支持低功耗空闲) 。
- 即插即用管理器已在系统设备之间重新分发了系统的硬件资源。
回调函数必须执行使设备完全正常运行所需的任何操作,例如加载固件或启用在设备处于低功耗状态时禁用的设备功能。
如果 EvtDeviceD0Entry 回调函数返回NT_SUCCESS (状态) 等于 FALSE 的状态值,框架将执行以下操作:
在上述任一情况下,框架都不会调用驱动程序的 EvtDeviceD0Exit 回调函数。有关框架何时调用 EvtDeviceD0Entry 回调函数的详细信息,请参阅 PnP 和电源管理方案。
有关提供此回调函数的驱动程序的详细信息,请参阅 在函数驱动程序中支持 PnP 和电源管理。
EvtDeviceD0Entry 回调函数在 IRQL = PASSIVE_LEVEL 调用。 不应使此回调函数 可分页。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfdevice.h (包括 Wdf.h) |
IRQL | PASSIVE_LEVEL (请参阅备注部分) |