[警告: 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) |