WdfFiTester 개요
NTSTATUS 코드를 반환하는 모든 KMDF DDI(디바이스 드라이버 인터페이스) 함수 호출에 실패하도록 WdfFiTester를 구성할 수 있습니다. KMDF 버전 1.11에는 NTSTATUS 코드를 반환하는 190개의 시스템 제공 함수가 있습니다. 이러한 함수 목록은 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) 또는 WMI를 호출할 수 있는 다른 사용자 모드 애플리케이션(C, C++또는 C#)에서 실행할 수 있습니다.
다른 작업 외에도 도구의 WMI 인터페이스를 사용하면 특정 KMDF 드라이버에서 호출한 DDI 목록을 가져올 수 있으며 DDI 오류 주입이 성공적으로 완료될 때마다 발생하는 WMI 이벤트를 대기할 수 있습니다.