共用方式為


WdfFiTester 概觀

您可以將 WdfFiTester 設定為讓傳回 NTSTATUS 程式代碼的任何 KMDF 設備驅動器介面 (DDI) 函式呼叫失敗。 KMDF 1.11 版中有 190 個系統提供的函式會傳回 NTSTATUS 程式代碼。 如需這些函式的清單,請參閱 傳回 NSTATUS 代碼的 KMDF 函式

處理 KMDF 函式呼叫的程式代碼通常具有下列程式代碼範例所示的模式:

//
// Create the device object.
//
status = WdfDeviceCreate(
                         &DeviceInit,
                         &attributes,
                         &device
                         );
if (!NT_SUCCESS(status)) {
 return status;
    }

KMDF 函式會傳回 NTSTATUS 程式代碼,而驅動程式會在繼續之前檢查傳回碼。 不過,由於傳回碼遺失或檢查不正確,因此會發生許多驅動程序問題。 這些錯誤可能會在驅動程式中造成非預期的行為,或可能會導致錯誤檢查。

例如,如果函式的指標參數必須是函式結束時有效的 (__out) 指標參數,就會發生錯誤檢查,但改為為 NULL。 如果驅動程式使用 參數,而且驅動程式未正確檢查函式呼叫的傳回狀態,就會發生錯誤檢查。

針對已針對錯誤插入設定的每個 DDI,WdfFiTester 工具會傳回STATUS_UNSUCCESSFUL的 NTSTATUS 程式代碼。 驅動程式預期會處理失敗。

因為此工具使用 WMI 介面,所以您可以從可以呼叫 WMI 的腳本(vbscript 或 jscript)或任何其他使用者模式應用程式(C、C++或 C# )執行它。

除了其他作業之外,透過工具的 WMI 介面,您可以取得特定 KMDF 驅動程式所呼叫的 DDI 清單,這些 DDI 正在等待 WMI 事件—該事件在每次 DDI 錯誤插入成功完成時觸發。