EVT_WDF_DEVICE_QUERY_REMOVE回调函数 (wdfdevice.h)
[适用于 KMDF 和 UMDF]
驱动程序的 EvtDeviceQueryRemove 事件回调函数确定是否可以停止和删除指定的设备。
语法
EVT_WDF_DEVICE_QUERY_REMOVE EvtWdfDeviceQueryRemove;
NTSTATUS EvtWdfDeviceQueryRemove(
[in] WDFDEVICE Device
)
{...}
参数
[in] Device
框架设备对象的句柄。
返回值
如果驱动程序确定可以停止和删除设备, 则 EvtDeviceQueryRemove 回调函数必须返回STATUS_SUCCESS或其他状态值, NT_SUCCESS (状态) 等于 TRUE。 否则,它必须返回状态值,NT_SUCCESS (状态) 等于 FALSE。 不要返回STATUS_NOT_SUPPORTED。
注解
若要注册 EvtDeviceQueryRemove 回调函数,驱动程序必须调用 WdfDeviceInitSetPnpPowerEventCallbacks。
如果设备和驱动程序支持空闲关机,则当框架调用驱动程序的 EvtDeviceQueryRemove 回调函数时,设备可能未处于工作状态。 回调函数可以调用 WdfDeviceStopIdle 以强制设备进入其工作 (D0) 状态,然后回调函数可以在返回前调用 WdfDeviceResumeIdle 。
有关 EvtDeviceQueryRemove 回调函数的详细信息,请参阅 处理请求以停止设备。
框架不会将 EvtDeviceQueryRemove 回调函数与其他 PnP 和电源管理回调函数同步。 有关框架如何同步驱动程序的事件回调函数的执行的信息,请参阅 使用自动同步。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfdevice.h (包括 Wdf.h) |
IRQL | PASSIVE_LEVEL |