[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 没有将新功能添加到 UMDF 1,并且对较新版本的 Windows 10 上的 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅 UMDF入门 。]
当应用程序通过 Microsoft Win32 CancelIo、CancelIoEx或 CancelSynchronousIo 函数取消 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)。
除非驱动程序之前调用 IWDFIoRequest::MarkCancelable 方法来启用取消请求并注册 IRequestCallbackCancel 接口,否则框架不会调用 OnCancel 取消请求。
User-Mode Driver Framework (UMDF)仅允许每个队列一个 OnCancel 方法。 因此,当驱动程序调用 IWDFIoRequest::MarkCancelable 与特定队列关联的请求以使框架能够取消这些请求时,驱动程序必须向同一请求回调对象的 IRequestCallbackCancel 接口传递指针。 稍后,为了取消每个请求,框架在调用此请求回调对象的 OnCancel 方法时,将指针传递给 IWDFIoRequest 接口。
要求
要求 | 价值 |
---|---|
目标平台 | 窗户 |
标头 | wudfddi.h (包括 Wudfddi.h) |