Simulación sistemática de recursos bajos

La opción simulación sistemática de recursos bajos inserta errores de recursos en los controladores del modo kernel. Esta opción penetra en las rutas de acceso de control de errores del controlador. Probar estas rutas de acceso ha sido históricamente muy difícil. La opción de simulación sistemática de recursos bajos inserta errores de recursos de forma predecible, lo que hace que los problemas que encuentre reproducibles. Dado que las rutas de acceso de error son fáciles de reproducir, también facilita la comprobación de las correcciones de estos problemas.

Para ayudarle a determinar la causa principal del error, se proporciona una extensión del depurador que puede indicar exactamente qué errores se han insertado y en qué orden.

Precaución Esta opción no está pensada para su uso cuando se comprueban todos los controladores (o una colección grande de) de un equipo. Esta opción solo se debe usar cuando se realizan pruebas dirigidas de controladores individuales o sus controladores de filtro adjuntos. El uso de esta opción en un gran número de controladores al mismo tiempo podría provocar resultados imprevisibles y podría forzar bloqueos en componentes no relacionados con los controladores que está probando.

Nota Para Windows 8.1, la característica inserción de errores basada en pila, que estaba disponible en WDK 8, se ha integrado en el Comprobador de controladores. En los equipos que ejecutan Windows 8.1, use la opción Simulación de recursos bajos sistemáticos.

Cuando la opción simulación sistemática de recursos bajos está habilitada en un controlador específico, intercepta algunas llamadas de ese controlador al kernel y Ndis.sys. La simulación sistemática de recursos bajos examina la pila de llamadas, en concreto, en la parte de la pila de llamadas que procede del controlador en el que está habilitado. Si es la primera vez que ha visto esa pila, se producirá un error en la llamada según la semántica de esa llamada. De lo contrario, si ha visto esa llamada antes, la pasará a través de sin modificar. La simulación sistemática de recursos bajos contiene lógica para tratar con el hecho de que un controlador se puede cargar y descargar varias veces. Reconocerá que una pila de llamadas es la misma aunque el controlador se vuelva a cargar en una ubicación de memoria diferente.

Activación de esta opción

Puede activar la característica de simulación de recursos bajos sistemáticos para uno o varios controladores mediante el Administrador de comprobadores de controladores o la línea de comandos Verifier.exe. Para obtener más información, vea Seleccionar opciones del comprobador de controladores. Debe reiniciar el equipo para activar o desactivar la opción simulación de recursos bajos sistemáticos.

  • En la línea de comandos

    Windows 11

    En la línea de comandos, la simulación sistemática de recursos bajos se representa mediante el comprobador /rc 19 36 o el comprobador /dif 19, ambos incluyen el modo DIF necesario.

    La característica estará activa después del siguiente arranque o inmediatamente si se agrega /now a la cadena de comandos.

    Windows 10 y siguientes

    En la línea de comandos, la simulación sistemática de recursos bajos se representa mediante el comprobador /flags 0x040000 (bit 18). Para la simulación sistemática de recursos bajos, use un valor de marca de 0x040000 o agregue 0x040000 al valor de marca. Por ejemplo:

    verifier /flags 0x040000 /driver MyDriver.sys
    

    La característica estará activa después del siguiente arranque.

    General

    Al habilitar la opción simulación de recursos bajos sistemáticos, puede usar la opción de línea de comandos /faultssystematicOPTION para controlar aún más la simulación de recursos bajos sistemáticos.

    OPTION Descripción

    enableboottime

    Habilita las inyecciones de errores en los reinicios del equipo.

    disableboottime

    Deshabilita las inyecciones de errores en los reinicios del equipo (esta es la configuración predeterminada).

    recordboottime

    Habilita las inyecciones de errores en el modo what if en los reinicios del equipo.

    resetboottime

    Deshabilita las inyecciones de errores en los reinicios del equipo y borra la lista de exclusión de pila.

    enableruntime

    Habilita dinámicamente las inyecciones de errores.

    disableruntime

    Deshabilita dinámicamente las inyecciones de errores.

    recordruntime

    Habilita dinámicamente las inyecciones de errores en el modo what if .

    resetruntime

    Deshabilita dinámicamente las inyecciones de errores y borra la lista de pila con errores anteriormente.

    querystatistics

    Muestra las estadísticas de inserción de errores actuales.

    incrementcounter

    Incrementa el contador de pruebas superadas que se usa para identificar cuándo se insertó un error.

    getstackid COUNTER

    Recupera el identificador de pila insertado indicado.

    excludestack STACKID

    Excluye la pila de la inserción de errores.

  • Uso del Administrador de comprobadores de controladores

    1. Inicie el Administrador de comprobadores de controladores. Escriba Comprobador en una ventana del símbolo del sistema.
    2. Seleccione Crear configuración personalizada (para desarrolladores de código) y haga clic en Siguiente.
    3. Seleccione Seleccionar configuración individual en una lista completa.
    4. Seleccione (comprobar) Simulación sistemática de recursos bajos.
    5. Reinicie el equipo.

Depuración de comprobaciones de errores causadas por la simulación sistemática de recursos bajos

La mayoría de los problemas encontrados con la simulación sistemática de recursos bajos dan lugar a comprobaciones de errores. Para ayudar a determinar la causa de estos errores de código, las herramientas de depuración para Windows proporcionan la extensión del depurador (kdexts.dll) y los símbolos necesarios.

Para ejecutar la extensión del depurador

  • En el símbolo del sistema del depurador, escriba el siguiente comando:

    !verifier 0x800
    

Esto volcará la información en el depurador que muestra las pilas de llamadas de los errores más recientes insertados.