Comprobación de errores 0x1: APC_INDEX_MISMATCH

La comprobación de errores APC_INDEX_MISMATCH tiene un valor de 0x00000001. La comprobación de errores indica un error de coincidencia en el índice de estado de llamadas a procedimientos asincrónicos (APC).

Importante

Este artículo es para programadores. Si es un cliente de Microsoft y el equipo muestra un código de error de pantalla azul, consulte Solución de errores de pantalla azul.

parámetros de APC_INDEX_MISMATCH

Parámetro Descripción
1 Dirección de la función del sistema (llamada al sistema) o rutina de trabajo.
2 Valor del campo ApcStateIndex del subproceso actual.
3 Valor del campo CombinedApcDisable del subproceso actual. Este campo consta de dos campos de 16 bits independientes: (Subproceso>EspecialApcDisable<< 16) | Hilo>KernelApcDisable.
4 Tipo de llamada:
0 - Llamada del sistema
1 - Rutina de trabajo

Causa

La causa más común de esta comprobación de errores es cuando un sistema de archivos o controlador tiene una secuencia no coincidente de llamadas para deshabilitar y volver a habilitar las API. El elemento de datos clave es el> campoThread CombinedApcDisable. El campo CombinedApcDisable consta de dos campos de 16 bits independientes: SpecialApcDisable y KernelApcDisable. Un valor negativo de cualquiera de los campos indica que un controlador ha deshabilitado las API especiales o normales (respectivamente) sin volver a habilitarlas. Un valor positivo indica que un controlador ha habilitado API especiales o normales demasiadas veces.

Resolución

Puede resolver este problema mediante WinDbg o mediante técnicas básicas de solución de problemas.

Depuración mediante WinDbg

La extensión del depurador !analyze muestra información sobre la comprobación de errores y puede ayudarle a determinar la causa principal.

Puede usar la extensión !apc para mostrar el contenido de una o varias API.

También puede establecer un punto de interrupción en el código que precede a este código de detención e intentar avanzar un paso hacia delante en el código de error.

Para obtener más información sobre el uso de WinDbg, consulte Análisis de volcado de memoria mediante los depuradores de Windows (WinDbg).

Depuración sin usar WinDbg

Si no está equipado para usar el depurador de Windows para trabajar en este problema:

  • En Visor de eventos, compruebe Registro del sistema para obtener más mensajes de error que puedan ayudarle a identificar el dispositivo o el controlador que está causando esta comprobación de errores.

  • Si un controlador está identificado en el mensaje de comprobación de errores, deshabilita el controlador o ponte en contacto con el fabricante para obtener actualizaciones de controladores.

  • Confirme que cualquier nuevo hardware instalado sea compatible con la versión instalada de Windows. Por ejemplo, puede obtener información sobre el hardware necesario en Windows 10 especificaciones.

Para obtener más información general sobre la solución de problemas, consulte Datos de pantalla azul.

Comentarios

Esta comprobación de errores es el resultado de un error interno en el kernel. Este error se produce al salir de una llamada del sistema. Una posible causa de esta comprobación de errores es un sistema de archivos o un controlador que tiene una secuencia no coincidente de llamadas del sistema para entrar o dejar regiones protegidas o críticas. Por ejemplo, cada llamada a KeEnterCriticalRegion debe tener una llamada coincidente a KeLeaveCriticalRegion.

Si está desarrollando un controlador, puede usar el Comprobador de controladores estáticos, una herramienta de análisis estático disponible en el Kit de controladores de Windows, para detectar problemas en el código antes de enviar el controlador. Ejecute static Driver Verifier con la regla CriticalRegions para comprobar que el código fuente usa estas llamadas del sistema en una secuencia correcta.

Consulte también

Referencia de código de comprobación de errores