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.