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、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 介面。 之後,若要取消每個要求,架構會在呼叫此 request-callback 物件的 OnCancel 方法時,傳遞 IWDFIoRequest 介面的指標。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | wudfddi.h (包括 Wudfddi.h) |