IQueueCallbackIoStop::OnIoStop 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,并取代 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 不会向 UMDF 1 添加任何新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]
OnIoStop 回调函数停止处理来自指定队列的指定 I/O 请求。
语法
void OnIoStop(
[in] IWDFIoQueue *pWdfQueue,
[in] IWDFIoRequest *pWdfRequest,
[in] ULONG ActionFlags
);
参数
[in] pWdfQueue
指向 I/O 队列对象的 IWDFIoQueue 接口的指针,该对象停止处理 I/O 请求。
[in] pWdfRequest
指向 IWDFIoRequest 接口的指针,该接口表示其处理已停止的框架请求对象。
[in] ActionFlags
WDF_REQUEST_STOP_ACTION_FLAGS类型值的有效按位 OR,用于标识停止操作请求的状态。
返回值
无
备注
驱动程序在调用 IWDFDevice::CreateIoQueue 方法以创建 I/O 队列或配置默认 I/O 队列时注册 IQueueCallbackIoStop 接口。
如果驱动程序为 I/O 队列注册 OnIoStop 回调函数,则当队列的基础设备离开其工作 (D0) 状态时,框架会调用它。 框架为驱动程序尚未完成的每个 I/O 请求(包括驱动程序拥有的请求以及它已转发到 I/O 目标的请求)调用 OnIoStop 回调函数。
OnIoStop 回调函数必须完成、取消或推迟对 I/O 请求的进一步处理。 必须使用以下规则:
如果驱动程序拥有 I/O 请求,则必须调用 IWDFIoRequest::Complete 才能完成或取消请求,或者必须推迟对请求的进一步处理,然后调用 IWDFIoRequest2::StopAcknowledge。
如果驱动程序已将 I/O 请求转发到 I/O 目标,则必须调用 IWDFIoRequest::CancelSentRequest 以尝试取消请求,或者必须推迟对请求的进一步处理,然后调用 StopAcknowledge。
如果在 ActionFlags 参数中设置了 WdfRequestStopRequestCancelable 标志,驱动程序必须在调用 IWDFIoRequest::Complete 之前调用 IWDFIoRequest::UnmarkCancelable 以完成 (或取消) 请求或调用 IWDFIoRequest2::StopAcknowledge 以重新排队请求。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | wudfddi.h (包括 Wudfddi.h) |