Comprobación de errores 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION

La comprobación de errores DRIVER_VERIFIER_DETECTED_VIOLATION tiene un valor de 0x000000C4. Este es el código de comprobación de errores general para detectar errores irrecuperables encontrados por el Comprobador de controladores. Para obtener más información, consulte Control de una comprobación de errores cuando el comprobador de controladores está habilitado.

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 DRIVER_VERIFIER_DETECTED_VIOLATION

El parámetro 1 identifica el tipo de infracción. El significado de los parámetros restantes varía con el valor del parámetro 1. Los valores de parámetro se describen en la tabla siguiente.

Nota Si tiene problemas para ver las 5 columnas de esta tabla, pruebe lo siguiente:

  • Expanda la ventana del explorador al tamaño completo.
  • Coloque el cursor en la tabla y use las teclas de dirección para desplazarse a la izquierda y a la derecha.

0x00 a 0x70

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x00 IRQL actual Tipo de grupo Número de bytes El controlador solicitó una asignación de grupo de bytes cero.
0x01 IRQL actual Tipo de grupo Tamaño de la asignación, en bytes El controlador intentó asignar memoria paginada con IRQL > APC_LEVEL.
0x02 IRQL actual Tipo de grupo Tamaño de la asignación, en bytes El controlador intentó asignar memoria no paginada con IRQL > DISPATCH_LEVEL.
0x03 El autor de la llamada está intentando asignar más de una página de debe realizarse correctamente en el grupo, pero una página es el máximo permitido por esta API.
0x10 Dirección incorrecta 0 0 El controlador intentó liberar una dirección que no se devolvió desde una llamada de asignación.
0x11 IRQL actual Tipo de grupo Dirección del grupo El controlador intentó liberar el grupo paginado con IRQL > APC_LEVEL.
0x12 IRQL actual Tipo de grupo Dirección del grupo El controlador intentó liberar un grupo no paginado con IRQL > DISPATCH_LEVEL.
0x13 o 0x14 Reservado Puntero al encabezado del grupo Contenido del encabezado del grupo El controlador intentó liberar el grupo de memoria que ya estaba liberado.
0x15 Entrada del temporizador Tipo de grupo Dirección del grupo que se libera El grupo que el autor de la llamada está intentando liberar contiene un temporizador activo.
0x16 Reservado Dirección del grupo 0 El controlador intentó liberar el grupo en una dirección incorrecta o el controlador pasó parámetros no válidos a una rutina de memoria.
0X17 Entrada de recursos Tipo de grupo Dirección del grupo que se libera El grupo que el autor de la llamada está intentando liberar contiene un ERESOURCE activo.
0x30 IRQL actual IRQL solicitado 0 El controlador pasó un parámetro no válido a KeRaiseIrql. (El parámetro era un valor inferior al IRQL actual o un valor mayor que HIGH_LEVEL. Esto puede ser el resultado de usar un parámetro sin inicializar).
0x31 IRQL actual IRQL solicitado 0: El nuevo IRQL es incorrecto 1: el nuevo IRQL no es válido dentro de una rutina DPC El controlador pasó un parámetro no válido a KeLowerIrql. (El parámetro era un valor mayor que el IRQL actual o un valor mayor que HIGH_LEVEL. Esto puede ser el resultado de usar un parámetro sin inicializar).
0x32 IRQL actual Dirección de bloqueo de número 0 El controlador llamado KeReleaseSpinLock en un IRQL distinto de DISPATCH_LEVEL. (Esto puede deberse a una doble liberación de un bloqueo de número).
0x33 IRQL actual Dirección de exclusión mutua rápida 0 El controlador intentó adquirir una exclusión mutua rápida con IRQL > APC_LEVEL.
0x34 IRQL actual Recuento de deshabilitaciones de APC de subprocesos Dirección de exclusión mutua rápida El controlador intentó liberar la exclusión mutua rápida en un IRQL distinto de APC_LEVEL.
0x35 IRQL actual Dirección de bloqueo de número IRQL anterior El kernel liberó un bloqueo de número con IRQL no igual a DISPATCH_LEVEL.
0x36 IRQL actual Número de bloqueo de número IRQL anterior El kernel liberó un bloqueo de número en cola con IRQL no igual a DISPATCH_LEVEL.
0x37 IRQL actual Recuento de deshabilitaciones de APC de subprocesos Recurso El controlador intentó adquirir un recurso, pero las API no están deshabilitadas.
0x38 IRQL actual Recuento de deshabilitaciones de APC de subprocesos Recurso El controlador intentó liberar un recurso, pero las API no están deshabilitadas.
0x39 IRQL actual Recuento de deshabilitaciones de APC de subprocesos Mutex El controlador intentó adquirir una exclusión mutua "no segura" con IRQL no igual a APC_LEVEL en la entrada.
0x3A IRQL actual Recuento de deshabilitaciones de APC de subprocesos Mutex El controlador intentó liberar una exclusión mutua "no segura" con IRQL no igual a APC_LEVEL en la entrada.
0x3B IRQL actual Objeto en el que se va a esperar Parámetro de tiempo de espera Se llama a la rutina KeWaitXxx en DISPATCH_LEVEL o superior.
0x3C Identificador pasado a la rutina Tipo de objeto 0 El controlador llamado ObReferenceObjectByHandle con un identificador incorrecto.
0x3D 0 0 Dirección del recurso incorrecto El controlador pasó un recurso incorrecto (no asignado) a ExAcquireResourceExclusive.
0x3E 0 0 0 El controlador llamado KeLeaveCriticalRegion para un subproceso que no está actualmente en una región crítica.
0x3F Dirección del objeto Nuevo recuento de referencias de objetos. -1: caso de desreferenciación 1: caso de referencia 0 El controlador aplicó ObReferenceObject a un objeto que tiene un recuento de referencias de cero o el controlador aplicó ObDereferenceObject a un objeto que tiene un recuento de referencias de cero.
0x40 IRQL actual Dirección de bloqueo de número 0 El controlador llamado KeAcquireSpinLockAtDpcLevel con IRQL < DISPATCH_LEVEL.
0x41 IRQL actual Dirección de bloqueo de número 0 El controlador llamado KeReleaseSpinLockFromDpcLevel con IRQL < DISPATCH_LEVEL.
0x42 IRQL actual Dirección de bloqueo de número 0 El controlador llamado KeAcquireSpinLock con IRQL > DISPATCH_LEVEL.
0x51 Dirección base de asignación Dirección de la referencia más allá de la asignación Número de bytes cargados El controlador intentó liberar memoria después de haber escrito después del final de la asignación. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa.
0x52 Dirección base de asignación Entrada hash Número de bytes cargados El controlador intentó liberar memoria después de haber escrito después del final de la asignación. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa.
0x53 Dirección base de asignación Encabezado Reservado El controlador intentó liberar memoria después de haber escrito después del final de la asignación. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa.
0x54 Dirección base de asignación Reservado Tamaño de hash del grupo El controlador intentó liberar memoria después de haber escrito después del final de la asignación. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa.
0x59 Dirección base de asignación Listindex Reservado El controlador intentó liberar memoria después de haber escrito después del final de la asignación. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa.
0x60 Bytes asignados desde el grupo paginado Bytes asignados desde un grupo no paginado Número total de asignaciones que no se liberaron El controlador se descarga sin liberar primero sus asignaciones de grupo. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa.
0x61 Bytes asignados desde el grupo paginado Bytes asignados desde un grupo no paginado Número total de asignaciones que no se liberaron Un subproceso de controlador está intentando asignar memoria de grupo mientras se descarga el controlador. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa.
0x62 Nombre del controlador Reservado Número total de asignaciones que no se liberaron, incluidos el grupo paginado y no paginado El controlador se descarga sin liberar primero sus asignaciones de grupo. Una comprobación de errores con este parámetro solo se produce cuando la opción Seguimiento de grupo del Comprobador de controladores está activa. Escriba !comprobador 3 drivername.sys para obtener información sobre las asignaciones filtradas que provocaron la comprobación de errores.
0x6F Dirección MDL Página física bloqueada Página física más alta del sistema MmProbeAndLockPages llamado en páginas que no están en la base de datos PFN. Normalmente, se trata de un controlador que llama a esta rutina para bloquear su propia RAM de doble puerto privada. No solo es necesario, sino que también puede dañar la memoria en las máquinas con RAM física no contigua.

0x70 a 0x91

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x70 IRQL actual Dirección MDL Modo de acceso El controlador llamado MmProbeAndLockPages con IRQL > DISPATCH_LEVEL.
0x71 IRQL actual Dirección MDL Dirección del proceso El controlador llamado MmProbeAndLockProcessPages con IRQL > DISPATCH_LEVEL.
0x72 IRQL actual Dirección MDL Dirección del proceso El controlador llamado MmProbeAndLockSelectedPages con IRQL > DISPATCH_LEVEL.
0x73 IRQL actual En Windows de 32 bits: 32 bits bajos de la dirección física En Windows de 64 bits: la dirección física de 64 bits Número de bytes El controlador llamado MmMapIoSpace con IRQL > DISPATCH_LEVEL.
0x74 IRQL actual Dirección MDL Modo de acceso El controlador llamado MmMapLockedPages en modo kernel con IRQL > DISPATCH_LEVEL.
0x75 IRQL actual Dirección MDL Modo de acceso El controlador llamado MmMapLockedPages en modo de usuario con IRQL > APC_LEVEL.
0x76 IRQL actual Dirección MDL Modo de acceso El controlador llamado MmMapLockedPagesSpecifyCache en modo kernel con IRQL > DISPATCH_LEVEL.
0x77 IRQL actual Dirección MDL Modo de acceso El controlador llamado MmMapLockedPagesSpecifyCache en modo de usuario con IRQL > APC_LEVEL.
0x78 IRQL actual Dirección MDL 0 El controlador llamado MmUnlockPages con IRQL > DISPATCH_LEVEL.
0x79 IRQL actual Dirección virtual que se está desasignación Dirección MDL El controlador llamado MmUnmapLockedPages en modo kernel con IRQL > DISPATCH_LEVEL.
0x7A IRQL actual Dirección virtual que se está desasignación Dirección MDL El controlador llamado MmUnmapLockedPages en modo de usuario con IRQL > APC_LEVEL.
0x7B IRQL actual Dirección virtual que se está desasignación Número de bytes El controlador llamado MmUnmapIoSpace con IRQL > APC_LEVEL.
0x7C Dirección MDL Marcas MDL 0 El controlador llamado MmUnlockPages y pasó un MDL cuyas páginas nunca se bloquearon correctamente.
0x7D Dirección MDL Marcas MDL 0 El controlador llamado MmUnlockPages y pasó una MDL cuyas páginas proceden del grupo no paginado. (Estos nunca deben desbloquearse).
0x7E IRQL actual DISPATCH_LEVEL 0 El controlador llamado MmAllocatePagesForMdl, MmAllocatePagesForMdlEx o MmFreePagesFromMdl con IRQL > DISPATCH_LEVEL.
0x7F IRQL actual Dirección MDL Marcas MDL El controlador llamado BuildMdlForNonPagedPool y pasó una MDL cuyas páginas proceden del grupo paginado.
0x80 IRQL actual Dirección del evento 0 El controlador llamado KeSetEvent con irQL > DISPATCH_LEVEL.
0x81 Dirección MDL Marcas MDL 0 El controlador llamado MmMapLockedPages. (En su lugar, debe usar MmMapLockedPagesSpecifyCache , con el parámetro BugCheckOnFailure establecido en FALSE).
0x82 Dirección MDL Marcas MDL 0 El controlador llamado MmMapLockedPagesSpecifyCache con el parámetro BugCheckOnFailure es igual a TRUE. (Este parámetro debe establecerse en FALSE).
0x83 Inicio del intervalo de direcciones físicos que se va a asignar Número de bytes que se van a asignar Primer número de marco de página que no está bloqueado El controlador llamado MmMapIoSpace sin haber bloqueado las páginas MDL. Las páginas físicas representadas por el intervalo de direcciones físicos que se asignan deben haberse bloqueado antes de realizar esta llamada.
0x85 Dirección MDL Número de páginas que se van a asignar Primer número de marco de página que no está bloqueado El controlador llamado MmMapLockedPages sin haber bloqueado las páginas MDL.
0x89 Dirección MDL Puntero a la página que no es de memoria en MDL Número de página que no es de memoria en MDL Un MDL no está marcado como "E/S", pero contiene direcciones de página que no son de memoria.
0x91 Reservado Reservado Reservado Las pilas conmutadas del controlador mediante un método que no es compatible con el sistema operativo. La única manera admitida de extender una pila de modo kernel es mediante KeExpandKernelStackAndCallout.

0xA0 a 0x140

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0xA0 Puntero al IRP que realiza la solicitud de lectura o escritura Objeto de dispositivo del dispositivo inferior Número del sector en el que se detectó el error Se detectó un error de comprobación de redundancia cíclica (CRC) en un disco duro. Una comprobación de errores con este parámetro solo se produce cuando la opción Comprobación de integridad de disco del Comprobador de controladores está activa.
0xA1 Copia del IRP que realiza la solicitud de lectura o escritura. (Se ha completado el IRP real). Objeto de dispositivo del dispositivo inferior Número del sector en el que se detectó el error Se detectó un error CRC en un sector (asincrónicamente). Una comprobación de errores con este parámetro solo se produce cuando la opción Comprobación de integridad de disco del Comprobador de controladores está activa.
0xA2 IRP que realiza la solicitud de lectura o escritura, o una copia de este IRP Objeto de dispositivo del dispositivo inferior Número del sector en el que se detectó el error Las copias de suma de comprobación CRCDISK no coinciden. Podría tratarse de un error de paginación. Una comprobación de errores con este parámetro solo se produce cuando la opción Comprobación de integridad de disco del Comprobador de controladores está activa.
0xB0 Dirección MDL Marcas MDL Marcas MDL incorrectas El controlador llamado MmProbeAndLockPages para una MDL con marcas incorrectas. Por ejemplo, el controlador pasó una MDL creada por MmBuildMdlForNonPagedPool a MmProbeAndLockPages.
0xB1 Dirección MDL Marcas MDL Marcas MDL incorrectas El controlador llamado MmProbeAndLockProcessPages para una MDL con marcas incorrectas. Por ejemplo, el controlador pasó una MDL creada por MmBuildMdlForNonPagedPool a MmProbeAndLockProcessPages.
0xB2 Dirección MDL Marcas MDL Marcas MDL incorrectas El controlador llamado MmMapLockedPages para una MDL con marcas incorrectas. Por ejemplo, el controlador pasó una MDL que ya está asignada a una dirección del sistema o que no estaba bloqueada en MmMapLockedPages.
0xB3 Dirección MDL Marcas MDL Faltan marcas MDL (se esperaba al menos una) El controlador llamado MmMapLockedPages para una MDL con marcas incorrectas. Por ejemplo, el controlador pasó una MDL que no está bloqueada a MmMapLockedPages.
0xB4 Dirección MDL Marcas MDL Marca MDL parcial inesperada El controlador llamado MmUnlockPages para una MDL parcial. Un MDL parcial es uno creado por IoBuildPartialMdl.
0xB5 Dirección MDL Marcas MDL Marca MDL parcial inesperada MmUnmapLockedPages llamado en una MDL parcial (creada con IoBuildPartialMdl).
0xB6 Dirección MDL Marcas MDL Falta la marca MDL MmUnmapLockedPages llama a en una MDL que no está asignada a una dirección del sistema.
0xB7 Número de páginas físicas dañadas. Primera página física dañada. Última página física dañada. El BIOS del sistema ha dañado la memoria física baja durante una transición de suspensión.
0xB8 Dirección MDL Marcas MDL Reservado Las páginas descritas por MDL todavía se asignan. El controlador debe desasignación de las páginas antes de llamar a IoFreeMdl.
0xB9 Dirección que no se asigna. Dirección MDL. Reservado MmUnmapLockedPages llamó con una dirección de espacio de usuario incorrecta.
0xC0 Dirección del IRP 0 Reservado El controlador llamado IoCallDriver con interrupciones deshabilitadas.
0xC1 Dirección de la rutina de distribución del controlador Reservado Reservado Se devolvió una rutina de distribución de controladores con interrupciones deshabilitadas.
0xC2 0 0 0 El controlador llamó a una rutina de envío de E/S rápida después de deshabilitar las interrupciones.
0xC3 Dirección de la rutina de envío de E/S rápida del controlador Reservado Reservado Se devolvió una rutina de distribución de E/S rápida del controlador con interrupciones deshabilitadas.
0xC5 Dirección de la rutina de distribución del controlador Recuento de deshabilitaciones de APC del subproceso actual Recuento de deshabilitaciones de APC del subproceso antes de llamar a la rutina de distribución del controlador Una rutina de distribución de controladores ha cambiado el recuento de deshabilitación de APC del subproceso. El recuento de deshabilitaciones de APC se disminuye 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 siempre que se salga de 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.
0xC6 Dirección de la rutina de envío de E/S rápida del controlador Recuento de deshabilitación de APC del subproceso actual Recuento de deshabilitaciones de APC del subproceso antes de llamar a la rutina de distribución del controlador de E/S rápido Una rutina de distribución de E/S rápida del controlador ha cambiado el recuento de deshabilitación de APC del subproceso. El recuento de deshabilitaciones de APC se disminuye 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 siempre que se salga de 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.
0xCA Dirección de la lista de búsqueda Reservado Reservado El controlador ha intentado volver a inicializar una lista de aspecto.
0xCB Dirección de la lista de búsqueda Reservado Reservado El controlador ha intentado eliminar una lista de lookaside sin inicializar.
0xCC Dirección de la lista de búsqueda Dirección inicial de la asignación del grupo Tamaño de la asignación del grupo El controlador ha intentado liberar una asignación de grupo que contiene una lista de búsqueda activa.
0xCD Dirección de la lista de búsqueda Tamaño de bloque especificado por el autor de la llamada Tamaño mínimo de bloque admitido El controlador ha intentado crear una lista de aspecto con un tamaño de bloque de asignación demasiado pequeño.
0xD0 Dirección de la estructura ERESOURCE Reservado Reservado El controlador ha intentado volver a inicializar una estructura ERESOURCE.
0xD1 Dirección de la estructura ERESOURCE Reservado Reservado El controlador ha intentado eliminar una estructura ERESOURCE no inicializada.
0xD2 Dirección de la estructura ERESOURCE Dirección inicial de la asignación del grupo Tamaño de la asignación del grupo El controlador ha intentado liberar una asignación de grupo que contiene una estructura ERESOURCE activa.
0xD5 Dirección de la estructura de IO_REMOVE_LOCK creada por la versión de compilación comprobada del controlador Etiqueta IoReleaseRemoveLock actual Reservado La etiqueta IoReleaseRemoveLock actual no coincide con la etiqueta IoAcquireRemoveLock anterior. Si el controlador que llama a IoReleaseRemoveLock no está en una compilación activada, el parámetro 2 es la dirección de la estructura de instantáneas IO_REMOVE_LOCK creada por el comprobador de controladores en nombre del controlador. En este caso, la dirección de la estructura de IO_REMOVE_LOCK utilizada por el controlador no se usa en absoluto, ya que el Comprobador de controladores reemplaza la dirección de bloqueo para todas las API de bloqueo de eliminación. Una comprobación de errores con este parámetro solo se produce cuando la opción Verificación de E/S del comprobador de controladores está activa.
0xD6 Dirección de la estructura de IO_REMOVE_LOCK creada por la versión de compilación comprobada del controlador Etiqueta que no coincide con la etiqueta IoAcquireRemoveLock anterior Etiqueta IoAcquireRemoveLock anterior La etiqueta IoReleaseRemoveLockAndWait actual no coincide con la etiqueta IoAcquireRemoveLock anterior. Si el controlador que llama a IoReleaseRemoveLock no es una compilación activada, el parámetro 2 es la dirección de la estructura de la sombra IO_REMOVE_LOCK creada por el comprobador de controladores en nombre del controlador. En este caso, la dirección de la estructura de IO_REMOVE_LOCK utilizada por el controlador no se usa en absoluto, ya que el Comprobador de controladores reemplaza la dirección de bloqueo para todas las API de bloqueo de eliminación. Una comprobación de errores con este parámetro solo se produce cuando la opción Verificación de E/S del comprobador de controladores está activa.
0xD7 Dirección de la compilación activada Quitar estructura de bloqueo que el comprobador de controladores usa internamente Dirección de la estructura Remove Lock especificada por el controlador Reservado No se puede volver a inicializar un bloqueo de eliminación, incluso después de llamar a IoReleaseRemoveLockAndWait, porque es posible que otros subprocesos sigan usando ese bloqueo (mediante una llamada a IoAcquireRemoveLock). El controlador debe asignar el bloqueo Remove dentro de su extensión de dispositivo e inicializarlo una sola vez. El bloqueo se eliminará junto con la extensión del dispositivo.
0xDA Dirección inicial del controlador Dirección de devolución de llamada de WMI dentro del controlador Reservado Se intentó descargar un controlador que no ha registrado su función de devolución de llamada WMI.
0xDB Dirección del objeto de dispositivo Reservado Reservado Se intentó eliminar un objeto de dispositivo que no se anule el registro de WMI.
0xDC Reservado Reservado Reservado Se especificó un valor RegHandle no válido como parámetro de la función EtwUnregister.
0xDD Dirección de la llamada a EtwRegister Dirección inicial del controlador de descarga Para Windows 8 y versiones posteriores, este parámetro es el valor RegHandle de ETW. Se intentó descargar un controlador sin llamar a EtwUnregister.
0xDF Dirección del objeto de sincronización 0 0 El objeto de sincronización está en el espacio de direcciones de sesión. Los objetos de sincronización no se permiten en el espacio de direcciones de sesión porque se pueden manipular desde otra sesión o desde subprocesos del sistema que no tienen espacio de direcciones virtuales de sesión.
0xE0 Dirección en modo de usuario que se usa como parámetro Tamaño , en bytes, del intervalo de direcciones que se usa como parámetro Reservado Se realizó una llamada a una función kernel del sistema operativo que especificó una dirección en modo de usuario como parámetro.
0xE1 Dirección del objeto de sincronización Reservado Reservado Se encontró un objeto de sincronización para tener una dirección que no era válida o paginable.
0xE2 Dirección del IRP Dirección en modo de usuario presente en el IRP Reservado Se encontró que un IRP con Irp-RequestorMode> establecido en KernelMode tenía una dirección en modo de usuario como uno de sus miembros.
0xE3 Dirección de la llamada a la API Dirección en modo de usuario usada como parámetro en la API Reservado Un controlador ha realizado una llamada a una rutina ZwXxx en modo kernel con una dirección en modo de usuario como parámetro.
0xE4 Dirección de la llamada a la API Dirección de la estructura de UNICODE_STRING con formato incorrecto Reservado Un controlador ha realizado una llamada a una rutina ZwXxx en modo kernel con una estructura de UNICODE_STRING mal formada como parámetro.
0xE5 IRQL actual Reservado Reservado Se realizó una llamada a una API de kernel en el IRQL incorrecto.
0xE6 Dirección dentro del controlador que realiza la llamada a Zw API IRQL actual API de kernel especiales. No se llamó a kernel Zw API en IRQL = PASSIVE_LEVEL y con LAS API de kernel especiales habilitadas.
0xEA IRQL actual Recuento de deshabilitación de APC del subproceso Dirección del bloqueo de inserción Un controlador ha intentado adquirir un interbloqueo mientras las API están habilitadas.
0xEB IRQL actual Recuento de deshabilitación de APC del subproceso Dirección del bloqueo de inserción Un controlador ha intentado liberar un bloqueo de inserción mientras las API están habilitadas.
0xF0 Dirección del búfer de destino Dirección del búfer de origen Número de bytes que se van a copiar Un controlador denominado función memcpy con búferes de origen y destino superpuestos.
0xF5 Dirección del identificador NULL Tipo de objeto Reservado Un controlador pasó un identificador NULL a ObReferenceObjectByHandle.
0xF6 Controlar el valor al que se hace referencia Dirección del proceso actual Dirección dentro del controlador que realiza la referencia incorrecta Un controlador hace referencia a un identificador en modo de usuario como modo kernel.
0xF7 Identificador del valor especificado por el autor de la llamada Tipo de objeto especificado por el autor de la llamada AccessMode especificado por el autor de la llamada Un controlador está intentando una referencia en modo de usuario para un identificador de kernel en el contexto del proceso del sistema.
0xFA Dirección de rutina de finalización. Valor IRQL antes de llamar a la rutina de finalización Valor IRQL actual, después de llamar a la rutina de finalización La rutina de finalización de IRP devuelta en un IRQL que era diferente de IRQL en la que se llamó a la rutina.
0xFB Dirección de rutina de finalización Recuento de deshabilitación de APC del subproceso actual Recuento de deshabilitación de APC del subproceso antes de llamar a la rutina de finalización de IRP La rutina de finalización de IRP del controlador cambió el recuento de deshabilitaciones de APC del subproceso. El recuento de deshabilitaciones de APC se disminuye 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 siempre que se salga de 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.
0xFC Dirección dentro del controlador que realiza la llamada API incorrecta. Valor de ApcContext proporcionado. Reservado Llamar a ZwNotifyChangeKey (desde el modo kernel) con un valor de ApcContext no admitido.

0x105 a 0x140

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x105 Dirección del IRP 0 0 El controlador usa ExFreePool en lugar de IoFreeIrp para liberar el IRP.
0x10A 0 0 0 El controlador intenta cargar la cuota del grupo en el proceso Inactivo.
0x10B 0 0 0 El controlador intenta cargar la cuota del grupo desde una rutina DPC. Esto es incorrecto porque el contexto del proceso actual no está definido.
0x110 Dirección de la rutina del servicio de interrupción Dirección del contexto extendido que se guardó antes de ejecutar el ISR La dirección del contexto extendido se guardó después de ejecutar el ISR. La rutina de servicio de interrupción (ISR) del controlador ha dañado el contexto de subproceso extendido.
0x111 Dirección de la rutina del servicio de interrupción IRQL antes de ejecutar ISR IRQL después de ejecutar ISR La rutina de servicio de interrupción devolvió un IRQL cambiado.
0x115 Dirección del subproceso responsable del apagado, que puede estar interbloqueo. 0 0 El comprobador del controlador detectó que el sistema ha tardado más de 20 minutos y que el apagado no se ha completado.
0x11A IRQL actual 0 0 El controlador llama a KeEnterCriticalRegion en irQL > APC_LEVEL.
0x11B IRQL actual 0 0 El controlador llama a KeLeaveCriticalRegion en irQL > APC_LEVEL.
0x120 Dirección del valor IRQL Dirección del objeto en el que se va a esperar Dirección del valor de tiempo de espera El subproceso espera en irQL > DISPATCH_LEVEL. Los autores de llamadas de KeWaitForSingleObject o KeWaitForMultipleObjects deben ejecutarse en IRQL <= DISPATCH_LEVEL.
0x121 Dirección del valor IRQL Dirección del objeto en el que se va a esperar Dirección del valor de tiempo de espera El subproceso espera en IRQL es igual a DISPATCH_LEVEL y el tiempo de espera es NULL. Los autores de llamadas de KeWaitForSingleObject o KeWaitForMultipleObjects se pueden ejecutar en IRQL <= DISPATCH_LEVEL. Si se proporciona un puntero NULL para Timeout, el subproceso de llamada permanece en un estado de espera hasta que se señala el objeto.
0x122 Dirección del valor IRQL Dirección del objeto en el que se va a esperar Dirección del valor de tiempo de espera El subproceso espera en DISPATCH_LEVEL y el valor de tiempo de espera no es igual a cero (0). Si timeout != 0, los llamadores de KeWaitForSingleObject o KeWaitForMultipleObjects deben ejecutarse en IRQL <= APC_LEVEL.
0x123 Dirección del objeto en el que se va a esperar 0 0 El autor de la llamada de KeWaitForSingleObject o KeWaitForMultipleObjects especificó la espera como UserMode, pero el objeto está en la pila del kernel.
0x130 Dirección del elemento de trabajo 0 0 El elemento de trabajo está en el espacio de direcciones de sesión. Los elementos de trabajo no se permiten en el espacio de direcciones de sesión porque se pueden manipular desde otra sesión o desde subprocesos del sistema que no tienen espacio de direcciones virtuales de sesión.
0x131 Dirección del elemento de trabajo 0 0 El elemento de trabajo está en memoria paginable. Los elementos de trabajo deben estar en memoria no paginable porque el kernel los usa en DISPATCH_LEVEL.
0x135 Dirección de IRP Número de milisegundos permitidos entre la llamada de IoCancelIrp y la finalización de este IRP 0 El IRP cancelado no se completó en el tiempo esperado. El controlador tardó más de lo esperado en completar el IRP cancelado.
0x13A Dirección del bloque del grupo que se libera Valor incorrecto Dirección del valor incorrecto El controlador ha llamado ExFreePool y Driver Verifier detecta un error en uno de los valores internos que se usan para realizar un seguimiento del uso del grupo.
0x13B Dirección del bloque del grupo que se libera Dirección del valor incorrecto Dirección de un puntero a la página de memoria incorrecta El controlador ha llamado ExFreePool y Driver Verifier detecta un error en uno de los valores internos que se usan para realizar un seguimiento del uso del grupo.
0x13C Dirección del bloque del grupo que se libera Valor incorrecto Dirección del valor incorrecto El controlador ha llamado ExFreePool y Driver Verifier detecta un error en uno de los valores internos que se usan para realizar un seguimiento del uso del grupo.
0x13D Dirección del bloque del grupo que se libera Dirección del valor incorrecto Valor correcto que se esperaba El controlador ha llamado ExFreePool y Driver Verifier detecta un error en uno de los valores internos que se usan para realizar un seguimiento del uso del grupo.
0x13E Dirección de bloque de grupo especificada por el autor de la llamada Dirección de bloque del grupo a la que realiza el seguimiento el Comprobador de controladores Puntero a la dirección de bloque del grupo a la que realiza el seguimiento el Comprobador de controladores La dirección de bloque del grupo especificada por el autor de la llamada de ExFreePool es diferente de la dirección a la que realiza el comprobador de controladores.
0x13F Dirección del bloque del grupo que se libera Número de bytes que se liberan Puntero al número de bytes a los que realiza el seguimiento el Comprobador de controladores El número de bytes de memoria que se libera en la llamada a ExFreePool es diferente del número de bytes a los que realiza el seguimiento el Comprobador de controladores.
0x140 IRQL actual Dirección MDL Dirección virtual asociada a esta MDL Un MDL no bloqueado se construyó a partir de memoria paginable o tradable.
0x141 Dirección física más alta que el controlador solicitó para la asignación Número de bytes que se van a asignar 0 El controlador solicita explícitamente memoria física de menos de 4 GB.

0x1000 a 0x100B: interbloqueos

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x1000 Dirección del recurso Reservado Reservado Interbloqueo automático: el subproceso actual ha intentado adquirir de forma recursiva y exclusivamente un recurso que solo posee compartido. Una comprobación de errores con este parámetro solo se produce cuando la opción Detección de interbloqueos de Comprobador de controladores está activa.
0x1001 Dirección del recurso que era la causa final del interbloqueo Reservado Reservado Interbloqueo: se ha encontrado una infracción de jerarquía de bloqueo. Una comprobación de errores con este parámetro solo se produce cuando la opción Detección de interbloqueos de Comprobador de controladores está activa. (Use la extensión !deadlock para obtener más información).
0x1002 Dirección del recurso Reservado Reservado Recurso no inicializado: se ha adquirido un recurso sin inicializarse primero. Una comprobación de errores con este parámetro solo se produce cuando la opción Detección de interbloqueos del comprobador de controladores está activa.
0x1003 Dirección del recurso que se libera interbloqueo Dirección del recurso que se debe haber liberado primero Reservado Versión inesperada: se ha liberado un recurso en un orden incorrecto. Una comprobación de errores con este parámetro solo se produce cuando la opción Detección de interbloqueos del comprobador de controladores está activa.
0x1004 Dirección del recurso Dirección del subproceso que adquirió el recurso Dirección del subproceso actual Subproceso inesperado: el subproceso incorrecto libera un recurso. Una comprobación de errores con este parámetro solo se produce cuando la opción Detección de interbloqueos del comprobador de controladores está activa.
0x1005 Dirección del recurso Reservado Reservado Inicialización múltiple: se inicializa un recurso más de una vez. Una comprobación de errores con este parámetro solo se produce cuando la opción Detección de interbloqueos del comprobador de controladores está activa.
0x1007 Dirección del recurso Reservado Reservado Recurso no adquirido: se libera un recurso antes de que se haya adquirido. Una comprobación de errores con este parámetro solo se produce cuando la opción Detección de interbloqueos del comprobador de controladores está activa.
0x1008 Dirección de bloqueo Reservado Reservado El controlador intentó adquirir un bloqueo mediante una API que no coincide con este tipo de bloqueo.
0x1009 Dirección de bloqueo Reservado Reservado El controlador intentó liberar un bloqueo mediante una API que no coincide con este tipo de bloqueo.
0x100a Dirección del subproceso del propietario Reservado El subproceso terminado posee el bloqueo.
0x100B Dirección de bloqueo Dirección del subproceso del propietario Reservado El bloqueo eliminado sigue siendo propiedad de un subproceso.
0x1010 Objeto de dispositivo al que se emitió el IRP de escritura. Dirección del IRP. System-Space dirección virtual del búfer que describe mdl. Se modificó el contenido del búfer MDL invariable para Write Irp.
0x1011 Objeto de dispositivo al que se emitió el IRP de escritura. Dirección del IRP. System-Space dirección virtual del búfer que describe mdl. El contenido del búfer MDL invariable para Read Irp se modificó durante el envío o el búfer respaldado por páginas ficticias.
0x1012 Puntero a la cadena que describe la infracción. Datos implicados en este daño (0 si no se usan). Datos implicados en este daño (0 si no se usan). El almacenamiento de estado de la extensión comprobador detectó daños.
0x1013 Puntero al objeto de controlador. Puntero a las devoluciones de llamada de E/S originales capturadas. Reservado (sin usar). El comprobador detectó daños internos en las devoluciones de llamada de E/S originales capturadas.

0x2000 a 0x2005: problemas de integridad de código

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x2000 Dirección del código del controlador donde se detectó el error. Tipo de grupo. Etiqueta de grupo (si se proporciona). Problema de integridad de código: el autor de la llamada especificó un tipo de grupo ejecutable. (Se esperaba: NonPagedPoolNx)
0x2001 Dirección del código del controlador donde se detectó el error. Protección de páginas (WIN32_PROTECTION_MASK). 0 Problema de integridad de código: el autor de la llamada especificó una protección de página ejecutable. (Se esperaba: bits PAGE_EXECUTE* borrados)
0x2002 Dirección del código del controlador donde se detectó el error. Prioridad de página (MM_PAGE_PRIORITY or'd lógicamente con MdlMapping*). 0 Problema de integridad de código: el llamador especificó una asignación MDL ejecutable. (Se esperaba: MdlMappingNoExecute)
0x2003 Nombre del archivo de imagen (cadena Unicode). Dirección del encabezado de sección. Nombre de sección (cadena codificada UTF-8). Problema de integridad de código: la imagen contiene una sección ejecutable y grabable.
0x2004 Nombre del archivo de imagen (cadena Unicode). Dirección del encabezado de sección. Nombre de sección (cadena codificada UTF-8). Problema de integridad de código: la imagen contiene una sección que no está alineada con la página.
0x2005 Nombre del archivo de imagen (cadena Unicode). Directorio IAT. Nombre de sección (cadena codificada UTF-8). Problema de integridad de código: la imagen contiene un IAT ubicado en una sección ejecutable.

0xA001 a 0xA00D: problemas de conmutador de máquina virtual

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0xA001 Puntero al objeto NetBufferList Puntero al objeto de conmutador virtual (si no es NULL) Reservado (sin usar) Conmutador de máquina virtual: se debe establecer sourceHandle para netBufferList proporcionado por el autor de la llamada. Consulte la rutina AllocateNetBufferListForwardingContext .
0xA002 Puntero al objeto NetBufferList Puntero al objeto de conmutador virtual (si no es NULL). Reservado (sin usar) Conmutador de máquina virtual: el autor de la llamada proporcionó el detalle de reenvío de NetBufferList no es cero. Consulte la rutina AllocateNetBufferListForwardingContext .
0xA003 Puntero al objeto NetBufferList Puntero al objeto de conmutador virtual (si no es NULL). Reservado (sin usar) Conmutador de máquina virtual: el autor de la llamada proporcionó un netBufferList con el encabezado de paquete o el contexto de enrutamiento que es NULL. Consulte Directrices de administración de paquetes para la ruta de acceso de datos de conmutador extensible.
0xA004 Identificador del puerto no válido Índice NIC Puntero al objeto de conmutador virtual (si no es NULL). Conmutador de máquina virtual: el autor de la llamada especificó una combinación de índice de puerto y NIC no válida. Consulte Puerto de conmutador extensible de Hyper-V y Estados del adaptador de red.
0xA005 Puntero al objeto NetBufferList Puntero a la lista Destino. Puntero al objeto de conmutador virtual (si no es NULL). Conmutador de máquina virtual: el autor de la llamada proporcionó un destino no válido. Consulte AddNetBufferListDestination y UpdateNetBufferListDestinations.
0xA006 Puntero al objeto NetBufferList Puntero al objeto de conmutador virtual (si no es NULL). Reservado (sin usar) Conmutador de máquina virtual: el autor de la llamada proporcionó un NIC de origen o un objeto Port no válidos. Consulte Puerto de conmutador extensible de Hyper-V y Estados del adaptador de red.
0xA007 Puntero al objeto NetBufferList Puntero al objeto de conmutador virtual (si no es NULL). Reservado (sin usar) Conmutador de máquina virtual: el autor de la llamada proporcionó una lista de destino no válida. Consulte AddNetBufferListDestination y UpdateNetBufferListDestinations.
0xA008 Objeto NIC primario Índice de NIC Puntero al objeto de conmutador virtual (si no es NULL). Conmutador de máquina virtual: intenta hacer referencia a una NIC cuando no se permite. Consulte Puerto de conmutador extensible de Hyper-V y Estados del adaptador de red.
0xA009 Puerto al que se hace referencia Puntero al objeto de conmutador virtual (si no es NULL) Reservado (sin usar) Conmutador de máquina virtual: intente hacer referencia a un puerto cuando no se permita. Consulte Puerto de conmutador extensible de Hyper-V y Estados del adaptador de red.
0xA00A Puntero al objeto NetBufferList ContextTypeInfo (objeto) Reservado (sin usar) Conmutador de máquina virtual: el contexto de error ya está establecido. Consulte SetNetBufferListSwitchContext.
0xA00B Puntero al objeto NetBufferList NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_* Puntero al objeto de conmutador virtual (si no es NULL) Conmutador de máquina virtual: dirección no válida proporcionada para NetBufferList descartada. Consulte ReportFilteredNetBufferLists.
0xA00C Puntero al objeto NetBufferList Valor de Send Flags Puntero al objeto de conmutador virtual (si no es NULL) Conmutador de máquina virtual: la cadena NetBufferList tiene varios puertos de origen cuando se establece NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE marca. Consulte Marcas de envío y recepción de conmutador extensible de Hyper-V.
0xA00D Puntero al objeto NetBufferList Puntero al contexto del conmutador virtual Puntero al objeto de conmutador virtual (si no es NULL) Conmutador de máquina virtual: uno o varios NetBufferLists en la cadena tienen un destino no válido cuando se establece NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP marca. Consulte Marcas de envío y recepción de conmutador extensible de Hyper-V.
0xA00E Puntero al objeto NetBufferLists. Puntero al contexto del conmutador virtual. Puntero al objeto de conmutador virtual (si no es NULL). Conmutador de máquina virtual: intenta completar NetBufferList a través de WNV cuando se establece VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING marca.

0x00020002 a 0x00020022: infracciones de la regla de cumplimiento de DDI

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x00020002 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlApcLte. La regla especifica que el controlador debe llamar a ObGetObjectSecurity y ObReleaseObjectSecurity solo cuando IRQL <= APC_LEVEL.
0x00020003 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlDispatch. La regla IrqlDispatch especifica que el controlador debe llamar a ciertas rutinas solo cuando IRQL = DISPATCH_LEVEL
0x00020004 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlExAllocatePool. La regla IrqlExAllocatePool especifica que el controlador llama a ExAllocatePoolWithTag y ExAllocatePoolWithTagPriority solo cuando se encuentra en IRQL<=DISPATCH_LEVEL.
0x00020005 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlExApcLte1. La regla IrqlExApcLte1 especifica que el controlador llama a ExAcquireFastMutex y ExTryToAcquireFastMutex solo en IRQL <= APC_LEVEL.
0x00020006 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlExApcLte2. La regla IrqlExApcLte2 especifica que el controlador llama a ciertas rutinas solo cuando IRQL <= APC_LEVEL.
0x00020007 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlExApcLte3. La regla IrqlExApcLte3 especifica que el controlador debe llamar a determinadas rutinas de soporte técnico ejecutivo solo cuando IRQL <= APC_LEVEL.
0x00020008 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlExPassive. La regla IrqlExPassive especifica que el controlador debe llamar a ciertas rutinas de soporte técnico ejecutivo solo cuando IRQL = PASSIVE_LEVEL.
0x00020009 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlIoApcLte. La regla IrqlIoApcLte especifica que el controlador debe llamar a ciertas rutinas del administrador de E/S solo cuando IRQL <= APC_LEVEL.
0x0002000A Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlIoPassive1. La regla IrqlIoPassive1 especifica que el controlador debe llamar a ciertas rutinas del administrador de E/S solo cuando IRQL = PASSIVE_LEVEL.
0x0002000B Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlIoPassive2. La regla IrqlIoPassive2 especifica que el controlador debe llamar a ciertas rutinas del administrador de E/S solo cuando IRQL = PASSIVE_LEVEL.
0x0002000C Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlIoPassive3. La regla IrqlIoPassive3 especifica que el controlador debe llamar a ciertas rutinas del administrador de E/S solo cuando IRQL = PASSIVE_LEVEL.
0x0002000D Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlIoPassive4. La regla IrqlIoPassive4 especifica que el controlador debe llamar a ciertas rutinas del administrador de E/S solo cuando IRQL = PASSIVE_LEVEL.
0x0002000E Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlIoPassive5. La regla IrqlIoPassive5 especifica que el controlador debe llamar a determinadas rutinas del administrador de E/S solo cuando IRQL = PASSIVE_LEVEL.
0x0002000F Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlKeApcLte1. La regla IrqlKeApcLte1 especifica que el controlador debe llamar a determinadas rutinas de kernel solo cuando IRQL <= APC_LEVEL.
0x00020010 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlKeApcLte2. La regla IrqlKeApcLte2 especifica que el controlador debe llamar a ciertas rutinas de kernel solo cuando IRQL <= APC_LEVEL.
0x00020011 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlKeDispatchLte. La regla IrqlKeDispatchLte especifica que el controlador debe llamar a determinadas rutinas de kernel solo cuando IRQL <= DISPATCH_LEVEL.
0x00020015 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlKeReleaseSpinLock. La regla IrqlKeReleaseSpinLock especifica que el controlador debe llamar a KeReleaseSpinLock solo cuando IRQL = DISPATCH_LEVEL.
0x00020016 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlKeSetEvent. La regla IrqlKeSetEvent especifica que solo se llama a la rutina KeSetEvent en IRQL <= DISPATCH_LEVEL cuando Wait se establece en FALSE y en IRQL <= APC_LEVEL cuando Wait está establecido en TRUE.
0x00020019 Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringió la regla de cumplimiento de DDI IrqlMmApcLte. La regla IrqlMmApcLte especifica que el controlador debe llamar a ciertas rutinas del administrador de memoria solo cuando IRQL <= APC_LEVEL.
0x0002001A Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlMmDispatch. La regla IrqlMmDispatch especifica que el controlador debe llamar a MmFreeContiguousMemory solo cuando IRQL = DISPATCH_LEVEL.
0x0002001B Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlObPassive. La regla IrqlObPassive especifica que el controlador debe llamar a ObReferenceObjectByHandle solo cuando IRQL = PASSIVE_LEVEL.
0x0002001C Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlPsPassive. La regla IrqlPsPassive especifica que el controlador debe llamar a ciertas rutinas del administrador de procesos y subprocesos solo cuando IRQL = PASSIVE_LEVEL.
0x0002001D Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI IrqlReturn.
0x0002001E Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlRtlPassive. La regla IrqlRtlPassive especifica que el controlador debe llamar a RtlDeleteRegistryValue solo cuando IRQL = PASSIVE_LEVEL.
0x0002001F Puntero a la cadena que describe la condición de regla infringida. Puntero opcional a las variables de estado de regla. Reservado El controlador infringía la regla de cumplimiento de DDI IrqlZwPassive. La regla IrqlZwPassive especifica que el controlador debe llamar a ZwClose solo cuando IRQL = PASSIVE_LEVEL.
0x00020022 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar) Reservado (sin usar) El controlador infringió la regla de cumplimiento de DDI IrqlIoDispatch.
0x00020023 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar). Reservado (sin usar). El controlador infringió la regla de cumplimiento de DDI IrqlIoRtlZwPassive. La regla IrqlIoRtlZwPassive especifica que el controlador llama a los DDIs enumerados en la regla solo cuando se ejecuta en IRQL = PASSIVE_LEVEL.
0x00020024 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar). Reservado (sin usar). El controlador infringía la regla de cumplimiento de DDI IrqlNtifsApcPassive. La regla IrqlNtifsApcPassive especifica que el controlador llama a los DDIs enumerados en la regla solo cuando se ejecuta en IRQL = PASSIVE_LEVEL o en IRQL <= APC_LEVEL.
0x00020025 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar). Reservado (sin usar). El controlador infringía la regla de cumplimiento de DDI interna de Microsoft IrqlKeMore.

0x00040003 a 0x00043006: infracciones de reglas de cumplimiento de DDI

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x00040003 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI CriticalRegions.
0x00040006 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI QueuedSpinLock.
0x00040007 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI QueuedSpinLockRelease.
0x00040009 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI SpinLock.
0x0004000A Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo) Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI SpinlockRelease.
0x0004000E Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringió la regla de cumplimiento de DDI GuardedRegions.
0x0004100B Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar) Reservado (sin usar) El controlador infringía la regla de cumplimiento de DDI RequestedPowerIrp.
0x0004100F Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringió la regla de cumplimiento de DDI IoSetCompletionExCompleteIrp.
0x00043006 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar) Reservado (sin usar) El controlador infringía la regla de cumplimiento de DDI PnpRemove.

0x00081001 a 0x00082005: infracciones de reglas de cumplimiento del controlador avStream

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x00081001 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsDeviceMutex.
0x00081002 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsStreamPointerClone.
0x00081003 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar) Reservado (sin usar) El controlador infringía la regla de cumplimiento de DDI KsStreamPointerLock.
0x00081004 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsStreamPointerUnlock.
0x00081005 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar) Reservado (sin usar) El controlador infringía la regla de cumplimiento de DDI KsCallbackReturn.
0x00081006 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsIrqlDeviceCallbacks.
0x00081007 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsIrqlFilterCallbacks.
0x00081008 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsIrqlPinCallbacks.
0x00081009 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar) Reservado (sin usar) El controlador infringía la regla de cumplimiento de DDI KsIrqlDDIs.
0x0008100A Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsFilterMutex.
0x0008100B Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsProcessingMutex.
0x0008100C Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsInvalidStreamPointer.
0x00082001 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsTimedPinSetDeviceState.
0x00082002 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsTimedDeviceCallbacks.
0x00082003 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsTimedFilterCallbacks.
0x00082004 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsTimedPinCallbacks.
0x00082005 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI KsTimedProcessingMutex.

0x00091001 a 0x0009400C: infracciones de la regla de cumplimiento de DDI de NDIS

Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Causa del error
0x00091001 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringió la regla de cumplimiento de DDI NdisOidComplete.
0x00091002 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringió la regla de cumplimiento de DDI NdisOidDoubleComplete.
0x0009100E Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de cumplimiento de DDI NdisOidDoubleRequest.
0x00092003 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringió la regla de verificación NDIS/WIFI NdisTimedOidComplete.
0x0009200D Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI NdisTimedDataSend.
0x0009200F Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI NdisTimedDataHang.
0x00092010 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringió la regla de verificación NDIS/WIFI NdisFilterTimedPauseComplete.
0x00092011 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI NdisFilterTimedDataSend.
0x00092012 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI NdisFilterTimedDataReceive.
0x00093004 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El conductor infringía la regla de verificación NDIS/WIFI WlanAssociation.
0x00093005 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI WlanConnectionRoaming.
0x00093006 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El conductor infringía la regla de verificación NDIS/WIFI WlanDisassociation.
0x00093101 Puntero a la cadena que describe la condición de regla infringida. Reservado (sin usar) Reservado (sin usar) El conductor infringía la regla de verificación NDIS/WIFI WlanAssert.
0x00094007 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI WlanTimedAssociation.
0x00094008 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI WlanTimedConnectionRoaming.
0x00094009 Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI WlanTimedConnectRequest.
0x0009400B Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El controlador infringía la regla de verificación NDIS/WIFI WlanTimedLinkQuality.
0x0009400C Puntero a la cadena que describe la condición de regla infringida. Dirección del estado de regla interno (segundo argumento a !ruleinfo). Dirección de estados complementarios (tercer argumento a !ruleinfo). El conductor infringía la regla de verificación NDIS/WIFI WlanTimedScan.

Causa

Consulte la descripción de cada código en la sección Parámetros para obtener una descripción de la causa. Para obtener más información, use la extensión !analyze -v .

Resolución

Esta comprobación de errores solo puede producirse cuando se ha indicado al Comprobador de controladores que supervise uno o varios controladores. Si no tenía intención de usar el Comprobador de controladores, debe desactivarlo. También puede considerar la posibilidad de quitar el controlador que causó este problema.

Si es el escritor de controladores, use la información obtenida a través de esta comprobación de errores para corregir los errores en el código.

Para obtener información completa sobre el Comprobador de controladores, consulte Comprobador de controladores.

Comentarios

Los códigos de _POOL_TYPE se enumeran en Ntddk.h. En concreto, 0 (cero) indica un grupo no paginado y 1 (uno) indica el grupo paginado.

(Windows 8 y versiones posteriores de Windows) Si la comprobación de cumplimiento de DDI provoca una comprobación de errores, ejecute el Comprobador de controladores estáticos en el código fuente del controlador y especifique la regla de cumplimiento de DDI (identificada por el valor del parámetro 1) que provocó la comprobación de errores. El comprobador de controladores estáticos puede ayudarle a localizar la causa del problema en el código fuente.

Vea también

Controlar una comprobación de errores cuando el comprobador de controladores está habilitado