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 请求的 I/O 队列对象的 IWDFIoQueue 接口的指针。

[in] pWdfRequest

指向 IWDFIoRequest 接口的指针,该接口表示其处理已停止的框架请求对象。

[in] ActionFlags

WDF_REQUEST_STOP_ACTION_FLAGS类型化值的有效按位 OR,用于标识停止作请求的状态。

返回值

没有

言论

驱动程序在驱动程序调用 IWDFDevice::CreateIoQueue 方法创建 I/O 队列或配置默认 I/O 队列时,驱动程序将注册 IQueueCallbackIoStop 接口。

如果驱动程序为 I/O 队列注册 OnIoStop 回调函数,则当队列的基础设备离开其工作状态时,框架将调用该函数。 该框架针对驱动程序尚未完成的每个 I/O 请求调用 OnIoStop 回调函数,包括驱动程序拥有的请求及其转发到 I/O 目标的请求。

OnIoStop 回调函数必须完成、取消或推迟对 I/O 请求的进一步处理。 必须使用以下规则:

如果驱动程序拥有 I/O 请求,则必须调用 IWDFIoRequest::Complete 来完成或取消请求,或者必须推迟对请求的进一步处理,然后调用 IWDFIoRequest2::StopAcknowledge

如果驱动程序已将 I/O 请求转发到 I/O 目标,则必须调用 IWDFIoRequest::CancelSentRequest 以尝试取消请求,或者必须推迟对请求的进一步处理,然后调用 StopAcknowledge

如果在 actionFlags 参数 中设置了 WdfRequestStopRequestCancelable 标志, 驱动程序必须先调用 IWDFIoRequest::UnmarkCancelable,然后才能调用 IWDFIoRequest::Complete 以完成请求或调用 IWDFIoRequest2::StopAcknowledge 以重新排队请求。

要求

要求 价值
目标平台 窗户
标头 wudfddi.h (包括 Wudfddi.h)

另请参阅

IQueueCallbackIoStop

IWDFDevice::CreateIoQueue

IWDFIoQueue

IWDFIoRequest

IWDFIoRequest2::StopAcknowledge

WDF_REQUEST_STOP_ACTION_FLAGS