Обзор WdfFiTester
Вы можете настроить WdfFiTester так, чтобы все вызовы функций интерфейса драйвера устройства KMDF (DDI) возвращали код NTSTATUS. В KMDF версии 1.11 имеется 190 системных функций, которые возвращают код NTSTATUS. Список этих функций см. в разделе Функции KMDF, возвращающие коды NSTATUS.
Код, обрабатывающий вызов функции KMDF, обычно имеет шаблон, показанный в следующем примере кода:
//
// Create the device object.
//
status = WdfDeviceCreate(
&DeviceInit,
&attributes,
&device
);
if (!NT_SUCCESS(status)) {
return status;
}
Функция KMDF возвращает код NTSTATUS, а драйвер проверяет код возврата перед продолжением. Однако многие проблемы с драйверами возникают из-за отсутствия или неправильного проверка для кода возврата. Эти ошибки могут привести к непредвиденному поведению драйвера или к ошибке проверка.
Например, ошибка проверка может возникнуть, если функция имеет параметр указателя (__out), который должен быть допустимым при выходе из функции, но вместо этого имеет значение NULL. Ошибка проверка может возникнуть, если драйвер использует параметр и драйвер не проверка состояние возврата из вызова функции правильно.
Для каждого DDI, настроенного для внедрения ошибок, средство WdfFiTester возвращает код NTSTATUS STATUS_UNSUCCESSFUL. Ожидается, что драйвер обработает сбой.
Так как средство использует интерфейс WMI, его можно запустить из скрипта (vbscript или jscript) или любого другого приложения пользовательского режима (C, C++или C#), которое может выполнять вызовы WMI.
Помимо других операций, с помощью интерфейса WMI средства можно получить список DDIs, которые были вызваны определенным драйвером KMDF и ожидают события WMI, которое срабатывает каждый раз, когда внедрение ошибки DDI завершается успешно.