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 介面,所以您可以從腳本 (vbscript 或 jscript) 或任何其他使用者模式應用程式 (C、C++ 或 C# ) 執行它,以呼叫 WMI。
除了其他作業之外,透過工具的 WMI 介面,您可以取得特定 KMDF 驅動程式所呼叫的 DDI 清單,以及等候每次 DDI 錯誤插入成功完成時引發的 WMI 事件。