WdfRequestIsCanceled 函式 (wdfrequest.h)

[適用於 KMDF 和 UMDF]

WdfRequestIsCanceled 方法會決定 I/O 管理員是否嘗試取消指定的 I/O 要求。

語法

BOOLEAN WdfRequestIsCanceled(
  [in] WDFREQUEST Request
);

參數

[in] Request

架構要求物件的句柄。

傳回值

如果 I/O 管理員嘗試取消指定的 I/O 要求,WdfRequestIsCanceled 會傳 回 TRUE。 即使呼叫的驅動程序沒有要求,這個方法仍可能會傳 回 true。 如果驅動程式沒有要求,則不應該呼叫 WdfRequestIsCanceled。 請參閱中的其他資訊。

WdfRequestIsCanceled 會傳回下列其中一個原因 FALSE

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

言論

如果您的驅動程式尚未呼叫 WdfRequestMarkCancelableWdfRequestMarkCancelableEx 來註冊 EvtRequestCancel 回呼函式, 但如果您想要讓驅動程式判斷 I/O 管理員是否已嘗試取消 I/O 要求,驅動程式可以呼叫 WdfRequestIsCanceled

如果驅動程式已呼叫 WdfRequestMarkCancelableWdfRequestMarkCancelableEx,則必須先呼叫 WdfRequestUnmarkCancelable,再呼叫 WdfRequestIsCanceled

只有在驅動程式 擁有 I/O 要求時,驅動程式才能呼叫 WdfRequestIsCanceled 要求。

如果 WdfRequestIsCanceled 傳回 TRUE ,您的驅動程式應該呼叫 WdfRequestComplete,並使用 STATUS_CANCELLED 的 Status 參數來取消要求。 如果驅動程式嘗試完成不擁有的要求,驅動程式可能會導致系統當機。

如需 WdfRequestIsCanceled的詳細資訊,請參閱 取消 I/O 要求

例子

如果 WdfRequestIsCanceled回 true,下列程式代碼範例會呼叫 WdfRequestComplete

if (WdfRequestIsCanceled(request)) {
    WdfRequestComplete(
                       request,
                       STATUS_CANCELLED
                       );
}

要求

要求 價值
目標平臺 普遍
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
標頭 wdfrequest.h (包括 Wdf.h)
連結庫 Wdf01000.sys (KMDF):WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf),ReqIsCancOnCancReq(kmdf)

另請參閱

EvtRequestCancel

WdfRequestComplete

WdfRequestMarkCancelable

WdfRequestMarkCancelableEx

WdfRequestUnmarkCancelable