0xC4 de Verificação de Bugs: DRIVER_VERIFIER_DETECTED_VIOLATION
A marcar de bugs DRIVER_VERIFIER_DETECTED_VIOLATION tem um valor de 0x000000C4. Esse é o bug geral marcar código para erros fatais encontrados pelo Verificador de Driver. Para obter mais informações, consulte Manipulando uma verificação de bugs quando o verificador de driver está habilitado.
Importante
Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul ao usar o computador, consulte Solucionar erros de tela azul.
Parâmetros de DRIVER_VERIFIER_DETECTED_VIOLATION
O parâmetro 1 identifica o tipo de violação. O significado dos parâmetros restantes varia de acordo com o valor do Parâmetro 1. Os valores de parâmetro são descritos na tabela a seguir.
Nota Se você tiver problemas para exibir todas as cinco colunas nesta tabela, tente o seguinte:
- Expanda a janela do navegador para o tamanho total.
- Coloque o cursor na tabela e use as teclas de direção para rolar para a esquerda e para a direita.
0x00 0x70
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x00 | IRQL atual | Tipo de pool | Número de bytes | O driver solicitou uma alocação de pool de bytes zero. |
0x01 | IRQL atual | Tipo de pool | Tamanho da alocação, em bytes | O driver tentou alocar memória paginada com APC_LEVEL IRQL > . |
0x02 | IRQL atual | Tipo de pool | Tamanho da alocação, em bytes | O driver tentou alocar memória nãopagada com DISPATCH_LEVEL IRQL > . |
0x03 | O chamador está tentando alocar mais de uma página do deve ter êxito no pool, mas uma página é o máximo permitido por essa API. | |||
0x10 | Endereço inválido | 0 | 0 | O driver tentou liberar um endereço que não foi retornado de uma chamada alocada. |
0x11 | IRQL atual | Tipo de pool | Endereço do pool | O driver tentou liberar o pool de páginas com APC_LEVEL IRQL > . |
0x12 | IRQL atual | Tipo de pool | Endereço do pool | O driver tentou liberar o pool nãopagado com DISPATCH_LEVEL IRQL > . |
0x13 ou 0x14 | Reservado | Ponteiro para o cabeçalho do pool | Conteúdo do cabeçalho do pool | O driver tentou liberar o pool de memória que já foi liberado. |
0x15 | Entrada do temporizador | Tipo de pool | Endereço do pool sendo liberado | O pool que o chamador está tentando liberar contém um temporizador ativo. |
0x16 | Reservado | Endereço do pool | 0 | O driver tentou liberar o pool em um endereço incorreto ou o driver passou parâmetros inválidos para uma rotina de memória. |
0X17 | Entrada de recurso | Tipo de pool | Endereço do pool sendo liberado | O pool que o chamador está tentando liberar contém um ERESOURCE ativo. |
0x30 | IRQL atual | IRQL solicitado | 0 | O driver passou um parâmetro inválido para KeRaiseIrql. (O parâmetro era um valor menor que o IRQL atual ou um valor maior que HIGH_LEVEL. Isso pode ser o resultado do uso de um parâmetro não inicializado.) |
0x31 | IRQL atual | IRQL solicitado | 0: Novo IRQL é ruim 1: o novo IRQL é inválido dentro de uma rotina de DPC | O driver passou um parâmetro inválido para KeLowerIrql. (O parâmetro era um valor maior que o IRQL atual ou um valor maior que HIGH_LEVEL. Isso pode ser o resultado do uso de um parâmetro não inicializado.) |
0x32 | IRQL atual | Endereço de bloqueio de rotação | 0 | O driver chamou KeReleaseSpinLock em um IRQL diferente de DISPATCH_LEVEL. (Isso pode ser devido a uma versão dupla de um bloqueio de rotação.) |
0x33 | IRQL atual | Endereço mutex rápido | 0 | O driver tentou adquirir mutex rápido com APC_LEVEL IRQL > . |
0x34 | IRQL atual | Contagem de desabilitação do Thread APC | Endereço mutex rápido | O driver tentou liberar mutex rápido em um IRQL diferente de APC_LEVEL. |
0x35 | IRQL atual | Endereço de bloqueio de rotação | IRQL antigo | O kernel liberou um bloqueio de rotação com IRQL não igual a DISPATCH_LEVEL. |
0x36 | IRQL atual | Número do bloqueio de rotação | IRQL antigo | O kernel liberou um bloqueio de rotação enfileirado com IRQL não igual a DISPATCH_LEVEL. |
0x37 | IRQL atual | Contagem de desabilitação do Thread APC | Recurso | O driver tentou adquirir um recurso, mas as APCs não estão desabilitadas. |
0x38 | IRQL atual | Contagem de desabilitação do Thread APC | Recurso | O driver tentou liberar um recurso, mas as APCs não estão desabilitadas. |
0x39 | IRQL atual | Contagem de desabilitação do Thread APC | Mutex | O driver tentou adquirir um mutex "inseguro" com IRQL não igual a APC_LEVEL na entrada. |
0x3A | IRQL atual | Contagem de desabilitação do Thread APC | Mutex | O driver tentou liberar um mutex "inseguro" com IRQL não igual a APC_LEVEL na entrada. |
0x3B | IRQL atual | Objeto para aguardar | Parâmetro de tempo limite | A rotina KeWaitXxx está sendo chamada em DISPATCH_LEVEL ou superior. |
0x3C | Identificador passado para a rotina | Tipo de objeto | 0 | O driver chamado ObReferenceObjectByHandle com uma alça incorreta. |
0x3D | 0 | 0 | Endereço do recurso inválido | O driver passou um recurso inválido (desalinhado) para ExAcquireResourceExclusive. |
0x3E | 0 | 0 | 0 | O driver chamado KeLeaveCriticalRegion para um thread que não está atualmente em uma região crítica. |
0x3F | Endereço do objeto | Nova contagem de referência de objeto. -1: caso de desreferência 1: caso de referência | 0 | O driver aplicou ObReferenceObject a um objeto que tem uma contagem de referência de zero ou o driver aplicou ObDereferenceObject a um objeto que tem uma contagem de referência de zero. |
0x40 | IRQL atual | Endereço de bloqueio de rotação | 0 | O driver chamado KeAcquireSpinLockAtDpcLevel com IRQL < DISPATCH_LEVEL. |
0x41 | IRQL atual | Endereço de bloqueio de rotação | 0 | O driver chamado KeReleaseSpinLockFromDpcLevel com IRQL < DISPATCH_LEVEL. |
0x42 | IRQL atual | Endereço de bloqueio de rotação | 0 | O driver chamado KeAcquireSpinLock com IRQL > DISPATCH_LEVEL. |
0x51 | Endereço base da alocação | Endereço da referência além da alocação | Número de bytes cobrados | O driver tentou liberar memória depois de ter gravado após o final da alocação. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. |
0x52 | Endereço base da alocação | Entrada de hash | Número de bytes cobrados | O driver tentou liberar memória depois de ter gravado após o final da alocação. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. |
0x53 | Endereço base da alocação | parâmetro | Reservado | O driver tentou liberar memória depois de ter gravado após o final da alocação. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. |
0x54 | Endereço base da alocação | Reservado | Tamanho do hash do pool | O driver tentou liberar memória depois de ter gravado após o final da alocação. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. |
0x59 | Endereço base da alocação | Listindex | Reservado | O driver tentou liberar memória depois de ter gravado após o final da alocação. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. |
0x60 | Bytes alocados do pool de páginas | Bytes alocados do pool nãopagado | Número total de alocações que não foram liberadas | O driver está descarregando sem primeiro liberar suas alocações de pool. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. |
0x61 | Bytes alocados do pool de páginas | Bytes alocados do pool nãopagado | Número total de alocações que não foram liberadas | Um thread de driver está tentando alocar memória do pool enquanto o driver está descarregando. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. |
0x62 | Nome do driver | Reservado | Número total de alocações que não foram liberadas, incluindo pool paginado e nãopagado | O driver está descarregando sem primeiro liberar suas alocações de pool. Um bug marcar com esse parâmetro ocorre somente quando a opção De rastreamento de pool do Verificador de Driver está ativa. Digite !verifier 3 drivername.sys para obter informações sobre as alocações que vazaram que causaram a verificação de bugs. |
0x6F | Endereço MDL | Página física sendo bloqueada | Página física mais alta do sistema | MmProbeAndLockPages chamado em páginas que não estão no banco de dados PFN. Normalmente, esse é um driver que chama essa rotina para bloquear sua própria RAM de dualport privado. Isso não só não é necessário, como também pode corromper a memória em computadores com RAM física não contígua. |
0x70 0x91
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x70 | IRQL atual | Endereço MDL | Modo de acesso | O driver chamado MmProbeAndLockPages com DISPATCH_LEVEL IRQL > . |
0x71 | IRQL atual | Endereço MDL | Endereço do processo | O driver chamado MmProbeAndLockProcessPages com DISPATCH_LEVEL IRQL > . |
0x72 | IRQL atual | Endereço MDL | Endereço do processo | O driver chamado MmProbeAndLockSelectedPages com DISPATCH_LEVEL IRQL > . |
0x73 | IRQL atual | No Windows de 32 bits: 32 bits baixos do endereço físico no Windows de 64 bits: o endereço físico de 64 bits | Número de bytes | O driver chamado MmMapIoSpace com IRQL > DISPATCH_LEVEL. |
0x74 | IRQL atual | Endereço MDL | Modo de acesso | O driver chamado MmMapLockedPages no modo kernel com IRQL > DISPATCH_LEVEL. |
0x75 | IRQL atual | Endereço MDL | Modo de acesso | O driver chamado MmMapLockedPages no modo de usuário com IRQL > APC_LEVEL. |
0x76 | IRQL atual | Endereço MDL | Modo de acesso | O driver chamado MmMapLockedPagesSpecifyCache no modo kernel com IRQL > DISPATCH_LEVEL. |
0x77 | IRQL atual | Endereço MDL | Modo de acesso | O driver chamado MmMapLockedPagesSpecifyCache no modo de usuário com IRQL > APC_LEVEL. |
0x78 | IRQL atual | Endereço MDL | 0 | O driver chamado MmUnlockPages com IRQL > DISPATCH_LEVEL. |
0x79 | IRQL atual | Endereço virtual não mapeado | Endereço MDL | O driver chamado MmUnmapLockedPages no modo kernel com IRQL > DISPATCH_LEVEL. |
0x7A | IRQL atual | Endereço virtual não mapeado | Endereço MDL | O driver chamado MmUnmapLockedPages no modo de usuário com IRQL > APC_LEVEL. |
0x7B | IRQL atual | Endereço virtual não mapeado | Número de bytes | O driver chamado MmUnmapIoSpace com APC_LEVEL IRQL > . |
0x7C | Endereço MDL | Sinalizadores MDL | 0 | O driver chamou MmUnlockPages e passou um MDL cujas páginas nunca foram bloqueadas com êxito. |
0x7D | Endereço MDL | Sinalizadores MDL | 0 | O driver chamado MmUnlockPages passou um MDL cujas páginas são do pool nãopagado. (Eles nunca devem ser desbloqueados.) |
0x7E | IRQL atual | DISPATCH_LEVEL | 0 | O driver chamado MmAllocatePagesForMdl, MmAllocatePagesForMdlEx ou MmFreePagesFromMdl com IRQL > DISPATCH_LEVEL. |
0x7F | IRQL atual | Endereço MDL | Sinalizadores MDL | O driver chamado BuildMdlForNonPagedPool passou um MDL cujas páginas são do pool paginado. |
0x80 | IRQL atual | Endereço do evento | 0 | O driver chamado KeSetEvent com DISPATCH_LEVEL IRQL > . |
0x81 | Endereço MDL | Sinalizadores MDL | 0 | O driver chamado MmMapLockedPages. (Em vez disso, você deve usar MmMapLockedPagesSpecifyCache , com o parâmetro BugCheckOnFailure definido como FALSE.) |
0x82 | Endereço MDL | Sinalizadores MDL | 0 | O driver chamado MmMapLockedPagesSpecifyCache com o parâmetro BugCheckOnFailure igual a TRUE. (Esse parâmetro deve ser definido como FALSE.) |
0x83 | Início do intervalo de endereços físicos a ser mapeado | Número de bytes a serem mapeados | Número do primeiro quadro de página que não está bloqueado | O driver chamado MmMapIoSpace sem ter bloqueado as páginas MDL. As páginas físicas representadas pelo intervalo de endereços físicos que está sendo mapeado devem ter sido bloqueadas antes de fazer essa chamada. |
0x85 | Endereço MDL | Número de páginas a serem mapeadas | Número do primeiro quadro de página que não está bloqueado | O driver chamado MmMapLockedPages sem ter bloqueado as páginas MDL. |
0x89 | Endereço MDL | Ponteiro para a página que não é de memória no MDL | O número da página sem memória no MDL | Um MDL não está marcado como "E/S", mas contém endereços de página que não são de memória. |
0x91 | Reservado | Reservado | Reservado | O driver alternou as pilhas usando um método que não é compatível com o sistema operacional. A única maneira com suporte para estender uma pilha de modo kernel é usando KeExpandKernelStackAndCallout. |
0xA0 para 0x140
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0xA0 | Ponteiro para o IRP que está fazendo a solicitação de leitura ou gravação | Objeto device do dispositivo inferior | Número do setor no qual o erro foi detectado | Um erro de CRC (marcar de redundância cíclica) foi detectado em um disco rígido. Um bug marcar com esse parâmetro ocorre somente quando a opção Verificação de Integridade do Disco do Verificador de Driver está ativa. |
0xA1 | Cópia do IRP que está fazendo a solicitação de leitura ou gravação. (O IRP real foi concluído.) | Objeto device do dispositivo inferior | Número do setor no qual o erro foi detectado | Um erro de CRC foi detectado em um setor (de forma assíncrona). Um bug marcar com esse parâmetro ocorre somente quando a opção Verificação de Integridade do Disco do Verificador de Driver está ativa. |
0xA2 | IRP fazendo a solicitação de leitura ou gravação ou uma cópia desse IRP | Objeto device do dispositivo inferior | Número do setor no qual o erro foi detectado | As cópias da soma de verificação do CRCDISK não correspondem. Isso pode ser um erro de paginação. Um bug marcar com esse parâmetro ocorre somente quando a opção Verificação de Integridade do Disco do Verificador de Driver está ativa. |
0xB0 | Endereço MDL | Sinalizadores MDL | Sinalizadores MDL incorretos | O driver chamado MmProbeAndLockPages para um MDL com sinalizadores incorretos. Por exemplo, o driver passou um MDL criado por MmBuildMdlForNonPagedPool para MmProbeAndLockPages. |
0xB1 | Endereço MDL | Sinalizadores MDL | Sinalizadores MDL incorretos | O driver chamado MmProbeAndLockProcessPages para um MDL com sinalizadores incorretos. Por exemplo, o driver passou um MDL criado por MmBuildMdlForNonPagedPool para MmProbeAndLockProcessPages. |
0xB2 | Endereço MDL | Sinalizadores MDL | Sinalizadores MDL incorretos | O driver chamado MmMapLockedPages para um MDL com sinalizadores incorretos. Por exemplo, o driver passou um MDL que já está mapeado para um endereço do sistema ou que não foi bloqueado para MmMapLockedPages. |
0xB3 | Endereço MDL | Sinalizadores MDL | Sinalizadores MDL ausentes (pelo menos um era esperado) | O driver chamado MmMapLockedPages para um MDL com sinalizadores incorretos. Por exemplo, o driver passou um MDL que não está bloqueado para MmMapLockedPages. |
0xB4 | Endereço MDL | Sinalizadores MDL | Sinalizador MDL parcial inesperado | O driver chamado MmUnlockPages para um MDL parcial. Um MDL parcial é aquele que foi criado por IoBuildPartialMdl. |
0xB5 | Endereço MDL | Sinalizadores MDL | Sinalizador MDL parcial inesperado | MmUnmapLockedPages chamado em um MDL parcial (criado com IoBuildPartialMdl). |
0xB6 | Endereço MDL | Sinalizadores MDL | Sinalizador MDL ausente | MmUnmapLockedPages chamado em um MDL que não está mapeado para um endereço do sistema. |
0xB7 | Número de páginas físicas corrompidas. | Primeira página física corrompida. | Última página física corrompida. | O BIOS do sistema corrompeu pouca memória física durante uma transição de suspensão. |
0xB8 | Endereço MDL | Sinalizadores MDL | Reservado | As páginas descritas pelo MDL ainda são mapeadas. O driver deve desmapear as páginas antes de chamar IoFreeMdl. |
0xB9 | Endereço não mapeado. | Endereço MDL. | Reservado | MmUnmapLockedPages chamado com um endereço de espaço de usuário inválido. |
0xC0 | Endereço do IRP | 0 | Reservado | O driver chamado IoCallDriver com interrupções desabilitadas. |
0xC1 | Endereço da rotina de expedição do driver | Reservado | Reservado | Uma rotina de expedição de driver foi retornada com interrupções desabilitadas. |
0xC2 | 0 | 0 | 0 | O driver chamou uma rotina de expedição de E/S rápida depois que as interrupções foram desabilitadas. |
0xC3 | Endereço da rotina de expedição de E/S rápida do driver | Reservado | Reservado | Uma rotina de expedição de E/S rápida do driver foi retornada com interrupções desabilitadas. |
0xC5 | Endereço da rotina de expedição do driver | Contagem de desabilitação de APC do thread atual | A contagem de desabilitação de APC do thread antes de chamar a rotina de expedição do driver | Uma rotina de expedição de driver alterou a contagem de desabilitação de APC do thread. A contagem de desabilitação do APC é decrementada sempre que um driver chama KeEnterCriticalRegion, FsRtlEnterFileSystem ou adquire um mutex. A contagem de desabilitação do APC é incrementada sempre que um driver chama KeLeaveCriticalRegion, KeReleaseMutex ou FsRtlExitFileSystem. Como essas chamadas devem estar sempre em pares, a contagem de desabilitação de APC deve ser zero sempre que um thread for encerrado. Um valor negativo indica que um driver desabilitou chamadas APC sem habilitá-las novamente. Um valor positivo indica que o inverso é verdadeiro. |
0xC6 | Endereço da rotina de expedição de E/S rápida do driver | Contagem de desabilitação de APC do thread atual | A contagem de desabilitação de APC do thread antes de chamar a rotina de expedição de driver de E/S rápida | Uma rotina de expedição de E/S rápida do driver alterou a contagem de desabilitação de APC do thread. A contagem de desabilitação do APC é decrementada sempre que um driver chama KeEnterCriticalRegion, FsRtlEnterFileSystem ou adquire um mutex. A contagem de desabilitação do APC é incrementada sempre que um driver chama KeLeaveCriticalRegion, KeReleaseMutex ou FsRtlExitFileSystem. Como essas chamadas devem estar sempre em pares, a contagem de desabilitação de APC deve ser zero sempre que um thread for encerrado. Um valor negativo indica que um driver desabilitou chamadas APC sem habilitá-las novamente. Um valor positivo indica que o inverso é verdadeiro. |
0xCA | Endereço da lista lookaside | Reservado | Reservado | O driver tentou inicializar novamente uma lista lookaside. |
0xCB | Endereço da lista lookaside | Reservado | Reservado | O driver tentou excluir uma lista lookaside não inicializada. |
0xCC | Endereço da lista lookaside | Endereço inicial da alocação do pool | Tamanho da alocação do pool | O driver tentou liberar uma alocação de pool que contém uma lista lookaside ativa. |
0xCD | Endereço da lista lookaside | Tamanho do bloco especificado pelo chamador | Tamanho mínimo do bloco com suporte | O driver tentou criar uma lista lookaside com um tamanho de bloco de alocação muito pequeno. |
0xD0 | Endereço da estrutura ERESOURCE | Reservado | Reservado | O driver tentou inicializar novamente uma estrutura ERESOURCE. |
0xD1 | Endereço da estrutura ERESOURCE | Reservado | Reservado | O driver tentou excluir uma estrutura ERESOURCE não inicializada. |
0xD2 | Endereço da estrutura ERESOURCE | Endereço inicial da alocação do pool | Tamanho da alocação do pool | O driver tentou liberar uma alocação de pool que contém uma estrutura ERESOURCE ativa. |
0xD5 | Endereço da estrutura de IO_REMOVE_LOCK criada pela versão de build verificada do driver | Marca IoReleaseRemoveLock atual | Reservado | A marca IoReleaseRemoveLock atual não corresponde à marca IoAcquireRemoveLock anterior. Se o driver que chama IoReleaseRemoveLock não estiver em um build verificado, o Parâmetro 2 será o endereço da estrutura de IO_REMOVE_LOCK de sombra criada pelo Verificador de Driver em nome do driver. Nesse caso, o endereço da estrutura de IO_REMOVE_LOCK usada pelo driver não é usado, pois o Verificador de Driver está substituindo o endereço de bloqueio para todas as APIs de bloqueio de remoção. Um bug marcar com esse parâmetro ocorre somente quando a opção Verificação de E/S do Verificador de Driver está ativa. |
0xD6 | Endereço da estrutura de IO_REMOVE_LOCK criada pela versão de build verificada do driver | Marca que não corresponde à marca IoAcquireRemoveLock anterior | Marca IoAcquireRemoveLock anterior | A marca IoReleaseRemoveLockAndWait atual não corresponde à marca IoAcquireRemoveLock anterior. Se o driver que chama IoReleaseRemoveLock não for um build verificado, o Parâmetro 2 será o endereço da estrutura de IO_REMOVE_LOCK de sombra criada pelo Verificador de Driver em nome do driver. Nesse caso, o endereço da estrutura de IO_REMOVE_LOCK usada pelo driver não é usado, pois o Verificador de Driver está substituindo o endereço de bloqueio para todas as APIs de bloqueio de remoção. Um bug marcar com esse parâmetro ocorre somente quando a opção Verificação de E/S do Verificador de Driver está ativa. |
0xD7 | Endereço do build verificado Remover estrutura de bloqueio que é usada internamente pelo Verificador de Driver | Endereço da estrutura Remover Bloqueio especificada pelo driver | Reservado | Um Remove Lock não pode ser inicializado novamente, mesmo depois de chamar IoReleaseRemoveLockAndWait, porque outros threads ainda podem estar usando esse bloqueio (chamando IoAcquireRemoveLock). O driver deve alocar o Remove Lock dentro de sua extensão de dispositivo e inicializá-lo uma única vez. O bloqueio será excluído junto com a extensão do dispositivo. |
0xDA | Endereço inicial do driver | Endereço de retorno de chamada WMI dentro do driver | Reservado | Foi feita uma tentativa de descarregar um driver que não registrou sua função de retorno de chamada WMI. |
0xDB | Endereço do objeto do dispositivo | Reservado | Reservado | Foi feita uma tentativa de excluir um objeto de dispositivo que não foi desregistrado do WMI. |
0xDC | Reservado | Reservado | Reservado | Um valor RegHandle inválido foi especificado como um parâmetro da função EtwUnregister. |
0xDD | Endereço da chamada para EtwRegister | Endereço inicial do driver de descarregamento | Para Windows 8 e versões posteriores, esse parâmetro é o valor RegHandle do ETW. | Foi feita uma tentativa de descarregar um driver sem chamar EtwUnregister. |
0xDF | Endereço do objeto de sincronização | 0 | 0 | O objeto de sincronização está no espaço de endereço da sessão. Objetos de sincronização não são permitidos no espaço de endereço de sessão porque podem ser manipulados de outra sessão ou de threads do sistema que não têm espaço de endereço virtual de sessão. |
0xE0 | Endereço do modo de usuário usado como parâmetro | Tamanho , em bytes, do intervalo de endereços usado como parâmetro | Reservado | Uma chamada foi feita para uma função de kernel do sistema operacional que especificou um endereço de modo de usuário como um parâmetro. |
0xE1 | Endereço do objeto de sincronização | Reservado | Reservado | Um objeto de sincronização foi encontrado com um endereço inválido ou paginável. |
0xE2 | Endereço do IRP | Endereço do modo de usuário presente no IRP | Reservado | Um IRP com Irp-RequestorMode> definido como KernelMode foi encontrado com um endereço no modo de usuário como um de seus membros. |
0xE3 | Endereço da chamada para a API | Endereço do modo de usuário usado como parâmetro na API | Reservado | Um driver fez uma chamada para uma rotina ZwXxx no modo kernel com um endereço de modo de usuário como parâmetro. |
0xE4 | Endereço da chamada para a API | Endereço da estrutura de UNICODE_STRING malformada | Reservado | Um driver fez uma chamada para uma rotina ZwXxx no modo kernel com uma estrutura de UNICODE_STRING malformada como um parâmetro. |
0xE5 | IRQL atual | Reservado | Reservado | Uma chamada foi feita para uma API do Kernel no IRQL incorreto. |
0xE6 | Endereço dentro do driver que está fazendo a chamada à API do Zw | IRQL atual | APCs de kernel especiais. | A API do Kernel Zw não foi chamada em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas. |
0xEA | IRQL atual | Contagem de desabilitação de APC do thread | Endereço do pushlock | Um driver tentou adquirir um pushlock enquanto as APCs estão habilitadas. |
0xEB | IRQL atual | Contagem de desabilitação de APC do thread | Endereço do pushlock | Um driver tentou liberar um pushlock enquanto as APCs estão habilitadas. |
0xF0 | Endereço do buffer de destino | Endereço do buffer de origem | Número de bytes a serem copiados | Um driver chamado função memcpy com buffers de origem e destino sobrepostos. |
0xF5 | Endereço do identificador NULL | Tipo de objeto | Reservado | Um driver passou um identificador NULL para ObReferenceObjectByHandle. |
0xF6 | Identificador do valor que está sendo referenciado | Endereço do processo atual | Endereço dentro do driver que executa a referência incorreta | Um driver faz referência a um identificador de modo de usuário como modo kernel. |
0xF7 | Manipular o valor especificado pelo chamador | Tipo de objeto especificado pelo chamador | AccessMode especificado pelo chamador | Um driver está tentando uma referência de modo de usuário para um identificador de kernel no contexto do processo do sistema. |
0xFA | Endereço de rotina de conclusão. | Valor IRQL antes de chamar a rotina de conclusão | Valor IRQL atual, depois de chamar a rotina de conclusão | A rotina de conclusão do IRP retornada em um IRQL que era diferente do IRQL em que a rotina era chamada. |
0xFB | Endereço de rotina de conclusão | Contagem de desabilitação de APC do thread atual | A contagem de desabilitação do APC do thread antes de chamar a rotina de conclusão do IRP | A contagem de desabilitação do APC do thread foi alterada pela rotina de conclusão do IRP do driver. A contagem de desabilitação do APC é decrementada sempre que um driver chama KeEnterCriticalRegion, FsRtlEnterFileSystem ou adquire um mutex. A contagem de desabilitação do APC é incrementada sempre que um driver chama KeLeaveCriticalRegion, KeReleaseMutex ou FsRtlExitFileSystem. Como essas chamadas devem estar sempre em pares, a contagem de desabilitação de APC deve ser zero sempre que um thread for encerrado. Um valor negativo indica que um driver desabilitou chamadas APC sem habilitá-las novamente. Um valor positivo indica que o inverso é verdadeiro. |
0xFC | Endereço dentro do driver que está fazendo a chamada à API incorreta. | Valor ApcContext fornecido. | Reservado | Chamando ZwNotifyChangeKey (do modo kernel) com valor ApcContext sem suporte. |
0x105 para 0x140
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x105 | Endereço do IRP | 0 | 0 | O driver usa ExFreePool em vez de IoFreeIrp para liberar o IRP. |
0x10A | 0 | 0 | 0 | O driver tenta cobrar a cota do pool para o processo ocioso. |
0x10B | 0 | 0 | 0 | O driver tenta cobrar a cota do pool de uma rotina DPC. Isso está incorreto porque o contexto do processo atual é indefinido. |
0x110 | Endereço da Rotina de Serviço de Interrupção | Endereço do contexto estendido que foi salvo antes de executar o ISR | O endereço do contexto estendido foi salvo depois que ele executou o ISR | A ISR (rotina de serviço de interrupção) para o driver corrompeu o contexto de thread estendido. |
0x111 | Endereço da Rotina de Serviço de Interrupção | IRQL antes de executar o ISR | IRQL após a execução do ISR | A rotina de serviço de interrupção retornou um IRQL alterado. |
0x115 | O endereço do thread responsável pelo desligamento, que pode estar em deadlock. | 0 | 0 | O Verificador de Driver detectou que o sistema demorou mais de 20 minutos e o desligamento não foi concluído. |
0x11A | IRQL atual | 0 | 0 | O driver chama KeEnterCriticalRegion no IRQL > APC_LEVEL. |
0x11B | IRQL atual | 0 | 0 | O driver chama KeLeaveCriticalRegion no IRQL > APC_LEVEL. |
0x120 | Endereço do valor IRQL | Endereço do objeto no qual aguardar | Endereço do valor de tempo limite | O thread aguarda a DISPATCH_LEVEL IRQL > . Os chamadores de KeWaitForSingleObject ou KeWaitForMultipleObjects devem ser executados em IRQL <= DISPATCH_LEVEL. |
0x121 | Endereço do valor IRQL | Endereço do objeto no qual aguardar | Endereço do valor de tempo limite | O thread aguarda em IRQL é igual a DISPATCH_LEVEL e o Tempo Limite é NULL. Os chamadores de KeWaitForSingleObject ou KeWaitForMultipleObjects podem ser executados em IRQL <= DISPATCH_LEVEL. Se um ponteiro NULL for fornecido para Timeout, o thread de chamada permanecerá em um estado de espera até que o Objeto seja sinalizado. |
0x122 | Endereço do valor IRQL | Endereço do objeto no qual aguardar | Endereço do valor de Tempo Limite | O thread aguarda em DISPATCH_LEVEL e o valor de Tempo Limite não é igual a zero (0). Se o Tempo limite != 0, os chamadores de KeWaitForSingleObject ou KeWaitForMultipleObjects deverão ser executados em IRQL <= APC_LEVEL. |
0x123 | Endereço do objeto no qual aguardar | 0 | 0 | O chamador de KeWaitForSingleObject ou KeWaitForMultipleObjects especificou a espera como UserMode, mas o Objeto está na pilha de kernel. |
0x130 | Endereço do item de trabalho | 0 | 0 | O item de trabalho está no espaço de endereço da sessão. Os itens de trabalho não são permitidos no espaço de endereço da sessão porque podem ser manipulados de outra sessão ou de threads do sistema que não têm espaço de endereço virtual de sessão. |
0x131 | Endereço do item de trabalho | 0 | 0 | O item de trabalho está na memória paginável. Os itens de trabalho precisam estar na memória não pageable porque o kernel os usa em DISPATCH_LEVEL. |
0x135 | Endereço do IRP | Número de milissegundos permitido entre a chamada IoCancelIrp e a conclusão desse IRP | 0 | O IRP cancelado não foi concluído no tempo esperado O driver demorou mais do que o esperado para concluir o IRP cancelado. |
0x13A | Endereço do bloco de pool que está sendo liberado | Valor incorreto | Endereço do valor incorreto | O driver chamado ExFreePool e Driver Verifier detecta um erro em um dos valores internos usados para acompanhar o uso do pool. |
0x13B | Endereço do bloco de pool que está sendo liberado | Endereço do valor incorreto | Endereço de um ponteiro para a página de memória incorreta | O driver chamado ExFreePool e Driver Verifier detecta um erro em um dos valores internos usados para acompanhar o uso do pool. |
0x13C | Endereço do bloco de pool que está sendo liberado | Valor incorreto | Endereço do valor incorreto | O driver chamado ExFreePool e Driver Verifier detecta um erro em um dos valores internos usados para acompanhar o uso do pool. |
0x13D | Endereço do bloco de pool que está sendo liberado | Endereço do valor incorreto | Valor correto esperado | O driver chamado ExFreePool e Driver Verifier detecta um erro em um dos valores internos usados para acompanhar o uso do pool. |
0x13E | Endereço de bloco de pool especificado pelo chamador | Endereço do bloco do pool rastreado pelo Verificador de Driver | Ponteiro para o endereço do bloco do pool que é rastreado pelo Verificador de Driver | O endereço de bloco do pool especificado pelo chamador de ExFreePool é diferente do endereço rastreado pelo Verificador de Driver. |
0x13F | Endereço do bloco de pool que está sendo liberado | Número de bytes sendo liberados | Ponteiro para o número de bytes rastreados pelo Verificador de Driver | O número de bytes de memória que estão sendo liberados na chamada para ExFreePool é diferente do número de bytes rastreados pelo Verificador de Driver. |
0x140 | IRQL atual | Endereço MDL | Endereço virtual associado a este MDL | Um MDL não bloqueado foi construído a partir de memória paginável ou negociável. |
0x141 | Endereço físico mais alto que o driver solicitou para alocação | Número de bytes a serem alocados | 0 | O driver está solicitando explicitamente memória física abaixo de 4 GB. |
0x1000 para 0x100B - Deadlocks
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x1000 | Endereço do recurso | Reservado | Reservado | Auto deadlock: o thread atual tentou adquirir recursivamente e exclusivamente um recurso que ele possui apenas compartilhado. Um bug marcar com esse parâmetro ocorre somente quando a opção Detecção de Deadlock do Verificador de Driver está ativa. |
0x1001 | Endereço do recurso que foi a causa final do deadlock | Reservado | Reservado | Deadlock: uma violação de hierarquia de bloqueio foi encontrada. Um bug marcar com esse parâmetro ocorre somente quando a opção Detecção de Deadlock do Verificador de Driver está ativa. (Use a extensão !deadlock para obter mais informações.) |
0x1002 | Endereço do recurso | Reservado | Reservado | Recurso não inicializado: um recurso foi adquirido sem ter sido inicializado primeiro. Um bug marcar com esse parâmetro ocorre somente quando a opção Detecção de Deadlock do Verificador de Driver está ativa. |
0x1003 | Endereço do recurso que está sendo liberado em deadlock | Endereço do recurso que deveria ter sido liberado primeiro | Reservado | Versão inesperada: um recurso foi liberado em uma ordem incorreta. Um bug marcar com esse parâmetro ocorre somente quando a opção Detecção de Deadlock do Verificador de Driver está ativa. |
0x1004 | Endereço do recurso | Endereço do thread que adquiriu o recurso | Endereço do thread atual | Thread inesperado: o thread errado libera um recurso. Um bug marcar com esse parâmetro ocorre somente quando a opção Detecção de Deadlock do Verificador de Driver está ativa. |
0x1005 | Endereço do recurso | Reservado | Reservado | Inicialização múltipla: um recurso é inicializado mais de uma vez. Um bug marcar com esse parâmetro ocorre somente quando a opção Detecção de Deadlock do Verificador de Driver está ativa. |
0x1007 | Endereço do recurso | Reservado | Reservado | Recurso não requisito: um recurso é liberado antes de ser adquirido. Um bug marcar com esse parâmetro ocorre somente quando a opção Detecção de Deadlock do Verificador de Driver está ativa. |
0x1008 | Endereço de bloqueio | Reservado | Reservado | O driver tentou adquirir um bloqueio usando uma API incompatível para esse tipo de bloqueio. |
0x1009 | Endereço de bloqueio | Reservado | Reservado | O driver tentou liberar um bloqueio usando uma API incompatível para esse tipo de bloqueio. |
0x100A | Endereço do thread do proprietário | Reservado | O thread encerrado é o proprietário do bloqueio. | |
0x100B | Endereço de bloqueio | Endereço do thread do proprietário | Reservado | O bloqueio excluído ainda pertence a um thread. |
0x1010 | Objeto de dispositivo para o qual o IRP de Gravação foi emitido. | O endereço do IRP. | System-Space Endereço Virtual para o buffer descrito pelo MDL. | O conteúdo invariável do buffer MDL para o Irp de Gravação foi modificado. |
0x1011 | Objeto de dispositivo para o qual o IRP de Gravação foi emitido. | O endereço do IRP. | System-Space Endereço Virtual para o buffer descrito pelo MDL. | O conteúdo invariável do buffer MDL para Irp de Leitura foi modificado durante a expedição ou o buffer apoiado por páginas fictícias. |
0x1012 | Um ponteiro para a cadeia de caracteres que descreve a violação. | Dados envolvidos nessa corrupção (0 se não forem usados). | Dados envolvidos nessa corrupção (0 se não forem usados). | O armazenamento de estado de extensão do verificador detectou corrupção. |
0x1013 | Um ponteiro para o objeto de driver. | Um ponteiro para os retornos de chamada de E/S originais capturados. | Reservado (não utilizado). | O verificador detectou corrupção interna nos retornos de chamada de E/S originais capturados. |
0x2000 para 0x2005 – Problemas de integridade do código
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x2000 | O endereço no código do driver em que o erro foi detectado. | Tipo de pool. | Marca de pool (se fornecida). | Problema de integridade de código: o chamador especificou um tipo de pool executável. (Esperado: NonPagedPoolNx) |
0x2001 | O endereço no código do driver em que o erro foi detectado. | Proteção de página (WIN32_PROTECTION_MASK). | 0 | Problema de integridade de código: o chamador especificou uma proteção de página executável. (Esperado: PAGE_EXECUTE* bits limpos) |
0x2002 | O endereço no código do driver em que o erro foi detectado. | Prioridade de página (MM_PAGE_PRIORITY logicamente OR'd com MdlMapping*). | 0 | Problema de integridade de código: o chamador especificou um mapeamento de MDL executável. (Esperado: MdlMappingNoExecute) |
0x2003 | O nome do arquivo de imagem (cadeia de caracteres Unicode). | O endereço do cabeçalho da seção. | O nome da seção (cadeia de caracteres codificada em UTF-8). | Problema de integridade de código: a imagem contém uma seção executável e gravável. |
0x2004 | O nome do arquivo de imagem (cadeia de caracteres Unicode). | O endereço do cabeçalho da seção. | O nome da seção (cadeia de caracteres codificada em UTF-8). | Problema de integridade de código: a imagem contém uma seção que não está alinhada à página. |
0x2005 | O nome do arquivo de imagem (cadeia de caracteres Unicode). | Diretório IAT. | O nome da seção (cadeia de caracteres codificada em UTF-8). | Problema de integridade do código: a imagem contém um IAT localizado em uma seção executável. |
0xA001 para 0xA00D – Problemas de alternância de VM
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0xA001 | Um ponteiro para o objeto NetBufferList | Um ponteiro para o objeto de comutador virtual (se NÃO NULL) | Reservado (não utilizado) | Opção de VM: o SourceHandle para o NetBufferList fornecido pelo chamador deve ser definido. Consulte a rotina AllocateNetBufferListForwardingContext . |
0xA002 | Um ponteiro para o objeto NetBufferList | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Reservado (não utilizado) | Comutador de VM: o chamador forneceu os detalhes de encaminhamento do NetBufferList não é zero. Consulte a rotina AllocateNetBufferListForwardingContext . |
0xA003 | Um ponteiro para o objeto NetBufferList | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Reservado (não utilizado) | Comutador de VM: o chamador forneceu um NetBufferList com um cabeçalho de pacote ou contexto de roteamento que é NULL. Consulte Diretrizes de gerenciamento de pacotes para o caminho de dados de comutador extensível. |
0xA004 | ID da porta inválida | Índice NIC | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Comutador de VM: o chamador especificou uma combinação de índice de Porta e NIC inválida. Consulte Estados da porta do comutador extensível do Hyper-V e do adaptador de rede. |
0xA005 | Um ponteiro para o objeto NetBufferList | Um ponteiro para a lista Destino. | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Comutador de VM: o chamador forneceu um destino inválido. Consulte AddNetBufferListDestination e UpdateNetBufferListDestinations. |
0xA006 | Um ponteiro para o objeto NetBufferList | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Reservado (não utilizado) | Comutador de VM: o chamador forneceu um objeto NIC ou Porta de origem inválido. Consulte Estados da porta do comutador extensível do Hyper-V e do adaptador de rede. |
0xA007 | Um ponteiro para o objeto NetBufferList | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Reservado (não utilizado) | Comutador de VM: o chamador forneceu uma lista de destino inválida. Consulte AddNetBufferListDestination e UpdateNetBufferListDestinations. |
0xA008 | Objeto NIC pai | Índice NIC | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Comutador de VM: tentando fazer referência a uma NIC quando não é permitido. Consulte Estados da porta do comutador extensível do Hyper-V e do adaptador de rede. |
0xA009 | Porta sendo referenciada | Um ponteiro para o objeto de comutador virtual (se NÃO NULL) | Reservado (não utilizado) | Comutador de VM: tente fazer referência a uma porta quando não for permitido. Consulte Estados da porta do comutador extensível do Hyper-V e do adaptador de rede. |
0xA00A | Um ponteiro para o objeto NetBufferList | Objeto ContextTypeInfo | Reservado (não utilizado) | Comutador de VM: o contexto de falha já está definido. Consulte SetNetBufferListSwitchContext. |
0xA00B | Um ponteiro para o objeto NetBufferList | NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_* | Um ponteiro para o objeto de comutador virtual (se NÃO NULL) | Comutador de VM: direção inválida fornecida para NetBufferList descartado. Consulte ReportFilteredNetBufferLists. |
0xA00C | Um ponteiro para o objeto NetBufferList | Valor de Enviar Sinalizadores | Um ponteiro para o objeto de comutador virtual (se NÃO NULL) | Comutador de VM: a cadeia NetBufferList tem várias portas de origem quando NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE sinalizador é definido. Consulte Sinalizadores de envio e recebimento do comutador extensível do Hyper-V. |
0xA00D | Um ponteiro para o objeto NetBufferList | Um ponteiro para o contexto do comutador virtual | Um ponteiro para o objeto de comutador virtual (se NÃO NULL) | Comutador de VM: um ou mais NetBufferLists na cadeia têm um destino inválido quando NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP sinalizador é definido. Consulte Sinalizadores de envio e recebimento do comutador extensível do Hyper-V. |
0xA00E | Um ponteiro para o objeto NetBufferLists. | Um ponteiro para o contexto do comutador virtual. | Um ponteiro para o objeto de comutador virtual (se NON-NULL). | Comutador de VM: tentando concluir NetBufferList por meio do WNV quando VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING sinalizador estiver definido. |
0x00020002 para 0x00020022 – Violações da regra de conformidade da DDI
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x00020002 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlApcLte. A regra especifica que o driver deve chamar ObGetObjectSecurity e ObReleaseObjectSecurity somente quando IRQL <= APC_LEVEL. |
0x00020003 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlDispatch. A regra IrqlDispatch especifica que o driver deve chamar determinadas rotinas somente quando IRQL = DISPATCH_LEVEL |
0x00020004 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade DDI IrqlExAllocatePool. A regra IrqlExAllocatePool especifica que o driver chama ExAllocatePoolWithTag e ExAllocatePoolWithTagPriority somente quando em IRQL<=DISPATCH_LEVEL. |
0x00020005 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlExApcLte1. A regra IrqlExApcLte1 especifica que o driver chama ExAcquireFastMutex e ExTryToAcquireFastMutex apenas em IRQL <= APC_LEVEL. |
0x00020006 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlExApcLte2. A regra IrqlExApcLte2 especifica que o driver chama determinadas rotinas somente quando IRQL <= APC_LEVEL. |
0x00020007 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlExApcLte3. A regra IrqlExApcLte3 especifica que o driver deve chamar determinadas rotinas de suporte executivo somente quando IRQL <= APC_LEVEL. |
0x00020008 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlExPassive. A regra IrqlExPassive especifica que o driver deve chamar determinadas rotinas de suporte executivo somente quando IRQL = PASSIVE_LEVEL. |
0x00020009 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlIoApcLte. A regra IrqlIoApcLte especifica que o driver deve chamar determinadas rotinas de gerente de E/S somente quando IRQL <= APC_LEVEL. |
0x0002000A | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlIoPassive1. A regra IrqlIoPassive1 especifica que o driver deve chamar determinadas rotinas de gerente de E/S somente quando IRQL = PASSIVE_LEVEL. |
0x0002000B | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlIoPassive2. A regra IrqlIoPassive2 especifica que o driver deve chamar determinadas rotinas de gerente de E/S somente quando IRQL = PASSIVE_LEVEL. |
0x0002000C | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlIoPassive3. A regra IrqlIoPassive3 especifica que o driver deve chamar determinadas rotinas de gerente de E/S somente quando IRQL = PASSIVE_LEVEL. |
0x0002000D | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlIoPassive4. A regra IrqlIoPassive4 especifica que o driver deve chamar determinadas rotinas de gerente de E/S somente quando IRQL = PASSIVE_LEVEL. |
0x0002000E | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlIoPassive5. A regra IrqlIoPassive5 especifica que o driver deve chamar determinadas rotinas de gerente de E/S somente quando IRQL = PASSIVE_LEVEL. |
0x0002000F | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlKeApcLte1. A regra IrqlKeApcLte1 especifica que o driver deve chamar determinadas rotinas de kernel somente quando IRQL <= APC_LEVEL. |
0x00020010 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlKeApcLte2. A regra IrqlKeApcLte2 especifica que o driver deve chamar determinadas rotinas de kernel somente quando IRQL <= APC_LEVEL. |
0x00020011 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlKeDispatchLte. A regra IrqlKeDispatchLte especifica que o driver deve chamar determinadas rotinas de kernel somente quando IRQL <= DISPATCH_LEVEL. |
0x00020015 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlKeReleaseSpinLock. A regra IrqlKeReleaseSpinLock especifica que o driver deve chamar KeReleaseSpinLock somente quando IRQL = DISPATCH_LEVEL. |
0x00020016 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlKeSetEvent. A regra IrqlKeSetEvent especifica que a rotina KeSetEvent só é chamada em IRQL <= DISPATCH_LEVEL quando Wait é definido como FALSE e em IRQL <= APC_LEVEL quando Wait é definido como TRUE. |
0x00020019 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade DDI IrqlMmApcLte. A regra IrqlMmApcLte especifica que o driver deve chamar determinadas rotinas do gerenciador de memória somente quando IRQL <= APC_LEVEL. |
0x0002001A | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlMmDispatch. A regra IrqlMmDispatch especifica que o driver deve chamar MmFreeContiguousMemory somente quando IRQL = DISPATCH_LEVEL. |
0x0002001B | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlObPassive. A regra IrqlObPassive especifica que o driver deve chamar ObReferenceObjectByHandle somente quando IRQL = PASSIVE_LEVEL. |
0x0002001C | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlPsPassive. A regra IrqlPsPassive especifica que o driver deve chamar determinadas rotinas de gerenciador de processos e threads somente quando IRQL = PASSIVE_LEVEL. |
0x0002001D | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI IrqlReturn. |
0x0002001E | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlRtlPassive. A regra IrqlRtlPassive especifica que o driver deve chamar RtlDeleteRegistryValue somente quando IRQL = PASSIVE_LEVEL. |
0x0002001F | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Ponteiro opcional para as variáveis de estado da regra. | Reservado | O driver violou a regra de conformidade da DDI IrqlZwPassive. A regra IrqlZwPassive especifica que o driver deve chamar ZwClose somente quando IRQL = PASSIVE_LEVEL. |
0x00020022 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado) | Reservado (não utilizado) | O driver violou a regra de conformidade da DDI IrqlIoDispatch. |
0x00020023 | Um ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado). | Reservado (não utilizado). | O driver violou a regra de conformidade da DDI IrqlIoRtlZwPassive. A regra IrqlIoRtlZwPassive especifica que o driver chama os DDIs listados na regra somente quando está sendo executado em IRQL = PASSIVE_LEVEL. |
0x00020024 | Um ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado). | Reservado (não utilizado). | O driver violou a regra de conformidade da DDI IrqlNtifsApcPassive. A regra IrqlNtifsApcPassive especifica que o driver chama os DDIs listados na regra somente quando está executando em IRQL = PASSIVE_LEVEL ou em IRQL <= APC_LEVEL. |
0x00020025 | Um ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado). | Reservado (não utilizado). | O driver violou a regra de conformidade da DDI interna da Microsoft IrqlKeMore. |
0x00040003 para 0x00043006 – Violações da regra de conformidade da DDI
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x00040003 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade de DDI CriticalRegions. |
0x00040006 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade DDI QueuedSpinLock. |
0x00040007 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade DDI QueuedSpinLockRelease. |
0x00040009 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade DDI SpinLock. |
0x0004000A | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo) | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI SpinlockRelease. |
0x0004000E | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade de DDI GuardedRegions. |
0x0004100B | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado) | Reservado (não utilizado) | O driver violou a regra de conformidade da DDI RequestedPowerIrp. |
0x0004100F | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI IoSetCompletionExCompleteIrp. |
0x00043006 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado) | Reservado (não utilizado) | O driver violou a regra de conformidade da DDI PnpRemove. |
0x00081001 para 0x00082005 – Violações da regra de conformidade do driver AVStream
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x00081001 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsDeviceMutex. |
0x00081002 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsStreamPointerClone. |
0x00081003 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado) | Reservado (não utilizado) | O driver violou a regra de conformidade da DDI KsStreamPointerLock. |
0x00081004 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsStreamPointerUnlock. |
0x00081005 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado) | Reservado (não utilizado) | O driver violou a regra de conformidade do DDI KsCallbackReturn. |
0x00081006 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsIrqlDeviceCallbacks. |
0x00081007 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsIrqlFilterCallbacks. |
0x00081008 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsIrqlPinCallbacks. |
0x00081009 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado) | Reservado (não utilizado) | O driver violou a regra de conformidade de DDI KsIrqlDDIs. |
0x0008100A | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI KsFilterMutex. |
0x0008100B | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI KsProcessingMutex. |
0x0008100C | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsInvalidStreamPointer. |
0x00082001 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsTimedPinSetDeviceState. |
0x00082002 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade do DDI KsTimedDeviceCallbacks. |
0x00082003 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI KsTimedFilterCallbacks. |
0x00082004 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI KsTimedPinCallbacks. |
0x00082005 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI KsTimedProcessingMutex. |
0x00091001 para 0x0009400C – Violações da regra de conformidade da DDI do NDIS
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa do erro |
---|---|---|---|---|
0x00091001 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI NdisOidComplete. |
0x00091002 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI NdisOidDoubleComplete. |
0x0009100E | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de conformidade da DDI NdisOidDoubleRequest. |
0x00092003 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI NdisTimedOidComplete. |
0x0009200D | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI NdisTimedDataSend. |
0x0009200F | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI NdisTimedDataHang. |
0x00092010 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI NdisFilterTimedPauseComplete. |
0x00092011 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI NdisFilterTimedDataSend. |
0x00092012 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI NdisFilterTimedDataReceive. |
0x00093004 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanAssociation. |
0x00093005 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanConnectionRoaming. |
0x00093006 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanDisassociation. |
0x00093101 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Reservado (não utilizado) | Reservado (não utilizado) | O driver violou a regra de verificação NDIS/WIFI WlanAssert. |
0x00094007 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanTimedAssociation. |
0x00094008 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanTimedConnectionRoaming. |
0x00094009 | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanTimedConnectRequest. |
0x0009400B | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanTimedLinkQuality. |
0x0009400C | Ponteiro para a cadeia de caracteres que descreve a condição de regra violada. | Endereço do estado da regra interna (segundo argumento para !ruleinfo). | Endereço de estados complementares (terceiro argumento para !ruleinfo). | O driver violou a regra de verificação NDIS/WIFI WlanTimedScan. |
Causa
Consulte a descrição de cada código na seção Parâmetros para obter uma descrição da causa. Mais informações podem ser obtidas usando a extensão !analyze -v .
Resolução
Esse bug marcar só pode ocorrer quando o Verificador de Driver foi instruído a monitorar um ou mais drivers. Se você não pretende usar o Verificador de Driver, desative-o. Você também pode considerar a remoção do driver que causou esse problema.
Se você for o gravador de driver, use as informações obtidas por meio desse bug marcar para corrigir os bugs em seu código.
Para obter detalhes completos sobre o Verificador de Driver, consulte Verificador de Driver.
Comentários
Os códigos _POOL_TYPE são enumerados em Ntddk.h. Em particular, 0 (zero) indica pool nãopagado e 1 (um) indica pool paginado.
(Windows 8 e versões posteriores do Windows) Se a verificação de conformidade de DDI causar um bug marcar, execute o Verificador de Driver Estático no código-fonte do driver e especifique a regra de conformidade da DDI (identificada pelo valor do parâmetro 1) que causou o bug marcar. O Verificador de Driver Estático pode ajudá-lo a localizar a causa do problema no código-fonte.
Confira também
Manipulando uma verificação de bugs quando o verificador de driver está habilitado