Visão geral do WdfFiTester
Você pode configurar o WdfFiTester para falhar em qualquer chamada de função DDI (interface de driver de dispositivo) KMDF que retorne um código NTSTATUS. Há 190 funções fornecidas pelo sistema no KMDF versão 1.11 que retornam um código NTSTATUS. Para obter uma lista dessas funções, consulte Funções KMDF que retornam códigos NSTATUS.
O código que manipula uma chamada de função KMDF normalmente tem o padrão mostrado no seguinte exemplo de código:
//
// Create the device object.
//
status = WdfDeviceCreate(
&DeviceInit,
&attributes,
&device
);
if (!NT_SUCCESS(status)) {
return status;
}
A função KMDF retorna um código NTSTATUS e o driver verifica o código de retorno antes de continuar. No entanto, muitos problemas de driver ocorrem devido a uma marcar ausente ou incorreta para o código de retorno. Esses erros podem causar um comportamento inesperado no driver ou podem causar um bug marcar.
Por exemplo, um bug marcar pode ocorrer se uma função tiver um parâmetro de ponteiro (__out) que deverá ser válido após a saída da função, mas, em vez disso, for NULL. O bug marcar pode ocorrer se o driver usar o parâmetro e o driver não marcar a status de retorno da chamada de função corretamente.
Para cada DDI configurada para injeção de falha, a ferramenta WdfFiTester retorna um código NTSTATUS de STATUS_UNSUCCESSFUL. Espera-se que o driver lide com a falha.
Como a ferramenta usa a interface WMI, você pode executá-la de um script (vbscript ou jscript) ou qualquer outro aplicativo de modo de usuário (C, C++ou C# ) que possa fazer chamadas para wmi.
Além de outras operações, com a interface WMI da ferramenta, você pode obter uma lista de DDIs que foram chamadas por um driver KMDF específico e que estão aguardando um evento WMI que é acionado sempre que uma injeção de falha de DDI é concluída com êxito.