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 una discrepancia en el índice de estado de llamadas de procedimiento asincrónico (APC).
Importante
Este artículo va dirigido a programadores. Si es un cliente de Microsoft y su 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>SpecialApcDisable<< 16) | Subproceso>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 de llamadas no coincidente para deshabilitar y volver a habilitar las API. El elemento de datos clave es el campo Subproceso>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 las API especiales o normales demasiadas veces.
Solució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 indica información sobre la comprobación de errores y puede ayudarle a determinar la causa raíz.
Puede usar la extensión !apc para mostrar el contenido de una o varias APC.
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 solo paso en el código con errores.
Para obtener más información sobre cómo usar 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:
Consulte el registro del sistema en el Visor de eventos para ver más mensajes de error que puedan ayudarle a identificar el dispositivo o controlador que provoca esta comprobaciones de errores.
Si se identifica un controlador en el mensaje de verificación de errores, deshabilítelo o consulte al fabricante para obtener actualizaciones del controlador.
Confirme que todo el hardware nuevo que se instale sea compatible con la versión instalada de Windows. Por ejemplo, puede obtener información sobre el hardware necesario en Especificaciones para Windows 10.
Para obtener más información sobre la solución de problemas generales, consulte Análisis de los datos de la comprobación de errores de la 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 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 usar el Comprobador de controladores estáticos, una herramienta de análisis estático disponible en el Kit para controladores de Windows, para detectar problemas en el código antes de enviar el controlador. Ejecute el comprobador de controladores estáticos con la regla CriticalRegions para comprobar que el código fuente usa estas llamadas del sistema en la secuencia correcta.