Compartir a través de


Información general sobre WdfFiTester

Puede configurar WdfFiTester para que produzca un error en cualquier llamada de función de interfaz de controlador de dispositivo KMDF (DDI) que devuelva un código NTSTATUS. Hay 190 funciones proporcionadas por el sistema en kmDF versión 1.11 que devuelven un código NTSTATUS. Para obtener una lista de estas funciones, vea Funciones KMDF que devuelven códigos NSTATUS.

El código que controla una llamada de función de KMDF normalmente tiene el patrón que se muestra en el ejemplo de código siguiente:

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

La función KMDF devuelve un código NTSTATUS y el controlador comprueba el código de retorno antes de continuar. Sin embargo, muchos problemas de controlador se producen debido a una comprobación incorrecta o faltante del código de retorno. Estos errores pueden provocar un comportamiento inesperado en el controlador o podría provocar una comprobación de errores.

Por ejemplo, una comprobación de errores puede producirse si una función tiene un parámetro de puntero (__out) que se espera que sea válido tras la salida de la función, pero, en su lugar, es NULL. La comprobación de errores puede producirse si el controlador usa el parámetro y el controlador no comprueba el estado devuelto de la llamada a la función correctamente.

Para cada DDI que se ha configurado para la inserción de errores, la herramienta WdfFiTester devuelve un código NTSTATUS de STATUS_UNSUCCESSFUL. Se espera que el controlador controle el error.

Dado que la herramienta usa la interfaz WMI, puede ejecutarla desde un script (vbscript o jscript) o desde cualquier otra aplicación en modo de usuario (C, C++o C# ) que pueda realizar llamadas a WMI.

Aparte de otras operaciones, con la interfaz WMI de la herramienta puede obtener una lista de DDIs a los que llamó un controlador KMDF específico y que están esperando un evento WMI que se activa cada vez que se completa correctamente una inyección de errores DDI.