IRequestCallbackCancel::OnCancel 方法 (wudfddi.h)

[警告: UMDF 2 是最新版本的 UMDF,并取代 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 不会向 UMDF 1 添加任何新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]

当应用程序通过 Microsoft Win32 CancelIoCancelIoExCancelSynchronousIo 函数取消 I/O 操作时,将调用 OnCancel 方法。

语法

void OnCancel(
  [in] IWDFIoRequest *pWdfRequest
);

参数

[in] pWdfRequest

指向 IWDFIoRequest 接口的指针,该接口表示要取消的框架请求对象。

返回值

备注

框架调用 OnCancel 方法以取消 pWdfRequest 参数标识的 I/O 请求。 驱动程序应首先确定是否可以取消 I/O 请求。 如果可以取消请求,驱动程序应取消它。 有关如何取消请求的详细信息,请参阅 取消 I/O 请求

如果驱动程序取消请求,则驱动程序还必须通过调用 IWDFIoRequest::Complete 方法来完成请求,并将 CompletionStatus 参数设置为 HRESULT_FROM_WIN32 (ERROR_OPERATION_ABORTED) 。

框架不会调用 OnCancel 来取消请求,除非驱动程序之前调用 IWDFIoRequest::MarkCancelable 方法来启用取消请求并注册 IRequestCallbackCancel 接口。

User-Mode Driver Framework (UMDF) 只允许每个队列使用一个 OnCancel 方法。 因此,当驱动程序为与特定队列关联的请求调用 IWDFIoRequest::MarkCancelable 以使框架能够取消这些请求时,驱动程序必须将指针传递给同一请求回调对象的 IRequestCallbackCancel 接口。 稍后,为了取消每个请求,框架在调用此 request-callback 对象的 OnCancel 方法时将指向请求的 IWDFIoRequest 接口的指针。

要求

要求
目标平台 Windows
标头 wudfddi.h (包括 Wudfddi.h)

另请参阅

IRequestCallbackCancel

IWDFIoRequest

IWDFIoRequest::Complete

IWDFIoRequest::MarkCancelable