La verificación de errores APC_INDEX_MISMATCH tiene un valor de 0x00000001. La verificación de errores indica una discrepancia en el índice de estado de las llamadas a procedimientos asincrónicos (APC).
Parámetros APC_INDEX_MISMATCH
Parámetro | Descripción |
---|---|
1 | La dirección de la función del sistema (llamada al sistema) o rutina del trabajador. |
2 | El valor del campo ApcStateIndex del hilo actual . |
3 | El valor del campo CombinedApcDisable del subproceso actual . Este campo consta de dos campos separados de 16 bits: ( Thread > SpecialApcDisable < < 16) | Hilo > KernelApcDisable . |
4 | Tipo de llamada: 0 – Llamada al sistema 1 – Rutina de trabajador |
Causa
La causa más común de esta verificación de errores es cuando un sistema de archivos o controlador tiene una secuencia de llamadas que no coincide para deshabilitar y volver a habilitar las APC. El elemento de datos clave es el campo Thread > CombinedApcDisable . El campo CombinedApcDisable consta de dos campos separados de 16 bits: SpecialApcDisable y KernelApcDisable . Un valor negativo en cualquiera de los campos indica que un conductor ha desactivado los APC especiales o normales (respectivamente) sin volver a activarlos. Un valor positivo indica que un controlador ha habilitado APC normales o especiales demasiadas veces.
Resolución
Puede resolver este problema utilizando WinDbg o utilizando técnicas básicas de solución de problemas.
Depurar usando WinDbg
La extensión !analyze debugger muestra información sobre la verificación de errores y puede ayudarlo a determinar la causa raíz.
Puede utilizar la extensión !apc para mostrar el contenido de uno o más APC.
También puede establecer un punto de interrupción en el código que precede a este código de parada e intentar avanzar un paso hacia el código de falla.
Para obtener más información sobre el uso de WinDbg, consulte Análisis de volcado de memoria mediante los depuradores de Windows (WinDbg) .
Depurar sin usar WinDbg
Si no está equipado para utilizar el depurador de Windows para solucionar este problema:
- En el Visor de eventos, verifique el Registro del sistema para ver más mensajes de error que puedan ayudarlo a identificar el dispositivo o controlador que está causando esta verificación de errores.
- Si se identifica un controlador en el mensaje de verificación de errores, desactívelo o consulte con el fabricante para obtener actualizaciones del controlador.
- Confirme que cualquier hardware nuevo que esté instalado sea compatible con la versión instalada de Windows. Por ejemplo, puede obtener información sobre el hardware requerido en las especificaciones de Windows 10 .
Observaciones
Esta verificación de errores es el resultado de un error interno en el kernel. Este error ocurre al salir de una llamada al sistema. Una posible causa de esta verificación de errores es un sistema de archivos o controlador que tiene una secuencia no coincidente de llamadas al sistema para ingresar o salir de regiones críticas o protegidas. Por ejemplo, cada llamada a KeEnterCriticalRegion debe tener una llamada coincidente a KeLeaveCriticalRegion .
Si está desarrollando un controlador, puede utilizar Static Driver Verifier , una herramienta de análisis estático disponible en el Kit de controladores de Windows, para detectar problemas en su código antes de enviar el controlador. Ejecute Static Driver Verifier con la regla CriticalRegions para verificar que su código fuente utilice estas llamadas al sistema en la secuencia correcta.