EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND回调函数 (wdfdevice.h)

[适用于 KMDF 和 UMDF]

驱动程序的 EvtDeviceSelfManagedIoSuspend 事件回调函数暂停设备的自我管理 I/O 操作。

语法

EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND EvtWdfDeviceSelfManagedIoSuspend;

NTSTATUS EvtWdfDeviceSelfManagedIoSuspend(
  [in] WDFDEVICE Device
)
{...}

参数

[in] Device

框架设备对象的句柄。

返回值

如果操作成功,则 EvtDeviceSelfManagedIoSuspend 回调函数必须返回STATUS_SUCCESS或NT_SUCCESS (状态) 等于 TRUE 的其他状态值。 否则,它必须返回状态值,NT_SUCCESS (状态) 等于 FALSE。 如果NT_SUCCESS (状态) 等于 FALSE,框架将停止设备并删除其设备对象。

如果NT_SUCCESS (状态) 等于 FALSE,框架将调用驱动程序的 EvtDeviceSelfManagedIoFlushEvtDeviceSelfManagedIoCleanup 回调函数。

有关此回调函数的返回值的详细信息,请参阅 报告设备故障

注解

若要注册 EvtDeviceSelfManagedIoSuspend 回调函数,驱动程序必须调用 WdfDeviceInitSetPnpPowerEventCallbacks

如果驱动程序已注册 EvtDeviceSelfManagedIoSuspend 回调函数,框架会出于以下原因之一调用该函数:

  • 设备即将进入低功耗状态。
  • 设备正在删除或意外移除。
  • 即插即用管理器即将在系统的附加设备之间重新分发系统的硬件资源。
由于你不知道其中哪些事件会导致框架调用驱动程序,因此必须假定设备可能返回到其工作 (D0) 状态。

如果设备即将进入低功耗状态,框架会在调用驱动程序的 EvtDeviceD0Exit 回调函数之前调用驱动程序的 EvtDeviceSelfManagedIoSuspend 回调函数

如果回调函数返回的状态值NT_SUCCESS (状态) 等于 FALSE,并且框架正在尝试降低设备的功率,框架将停止设备并删除其设备对象。

EvtDeviceSelfManagedIoSuspend 回调函数必须执行停止设备自我管理 I/O 操作所需的任何操作。

有关框架何时调用此回调函数的详细信息,请参阅 PnP 和电源管理方案

有关提供此回调函数的驱动程序的详细信息,请参阅 使用 Self-Managed I/O

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfdevice.h (包括 Wdf.h)
IRQL PASSIVE_LEVEL

另请参阅

EvtDeviceSelfManagedIoCleanup

EvtDeviceSelfManagedIoFlush

EvtDeviceSelfManagedIoInit

EvtDeviceSelfManagedIoRestart