IRequestCallbackCancel::OnCancel 方法 (wudfddi.h)

[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 未將新功能新增至 UMDF 1,且較新版本的 Windows 10 上不支援 UMDF 1。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用 UMDF 使用者入門。]

當應用程式透過 Microsoft Win32 CancelIo、CancelIoExCancelSynchronousIo 函式取消 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 介面。 之後,若要取消每個要求,架構會在呼叫此 request-callback 物件的 OnCancel 方法時,傳遞 IWDFIoRequest 介面的指標。

規格需求

需求
目標平台 Windows
標頭 wudfddi.h (包括 Wudfddi.h)

另請參閱

IRequestCallbackCancel

IWDFIoRequest

IWDFIoRequest::Complete

IWDFIoRequest::MarkCancelable