Comprobación de errores 0x20: KERNEL_APC_PENDING_DURING_EXIT
La comprobación de errores de KERNEL_APC_PENDING_DURING_EXIT tiene un valor de 0x00000020. Esto indica que una llamada a procedimiento asincrónico (APC) todavía estaba pendiente cuando se salió de un subproceso.
Importante
Este artículo es para programadores. Si es un cliente que ha recibido un código de error de pantalla azul mientras usa el equipo, consulte Solución de errores de pantalla azul.
parámetros de KERNEL_APC_PENDING_DURING_EXIT
Parámetro | Descripción |
---|---|
1 |
La dirección del APC encontrada pendiente durante la salida |
2 |
Recuento de deshabilitaciones de APC del subproceso |
3 |
IrQL actual |
4 |
Reservado |
Causa
El elemento de datos clave es el recuento de deshabilitaciones de APC (parámetro 2) para el subproceso. Si el recuento es distinto de cero, indicará el origen del problema.
El recuento de deshabilitaciones de APC se reduce cada vez que un controlador llama a KeEnterCriticalRegion, FsRtlEnterFileSystem o adquiere una exclusión mutua.
El recuento de deshabilitaciones de APC se incrementa cada vez que un controlador llama a KeLeaveCriticalRegion, KeReleaseMutex o FsRtlExitFileSystem.
Dado que estas llamadas siempre deben estar en pares, el recuento de deshabilitaciones de APC debe ser cero cuando se cierra un subproceso. Un valor negativo indica que un controlador ha deshabilitado las llamadas de APC sin volver a habilitarlas. Un valor positivo indica que el valor inverso es true.
Si alguna vez ve este error, sea muy sospechoso de todos los controladores instalados en la máquina, especialmente los controladores inusuales o no estándar.
Este IRQL actual (parámetro 3) debe ser cero. Si no es así, la rutina de cancelación del controlador puede haber provocado esta comprobación de errores devolviendo en un IRQL con privilegios elevados. En este caso, tenga en cuenta cuidadosamente lo que se estaba ejecutando (y lo que estaba cerrando) en el momento del bloqueo, y anote todos los controladores instalados en el momento del bloqueo. La causa en este caso suele ser un error grave en un controlador.
Resolución
La extensión !analyze debug muestra información sobre la comprobación de errores y puede ser útil para determinar la causa principal.