Partilhar via


Verificação de bugs 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION

A verificação de bug DRIVER_VERIFIER_IOMANAGER_VIOLATION tem um valor de 0x000000C9. Este é o código de verificação de bug para todas as violações de verificação de E/S do Verificador de Driver .

Importante

Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul enquanto estava usando o computador, confira Solucionar problemas de erros de tela azul.

DRIVER_VERIFIER_IOMANAGER_VIOLATION Parâmetros

Quando o Verificador de Driver está ativo e a Verificação de E/S está selecionada, várias violações de E/S farão com que essa verificação de bug seja emitida. O parâmetro 1 identifica o tipo de violação.

Parâmetro 1 Parâmetro 2 Parâmetro 3 Parâmetro 4 Causa do erro

0x01

Endereço do IRP que está sendo liberado

0

0

O driver tentou liberar um objeto cujo tipo não é IO_TYPE_IRP.

0x02

Endereço do IRP que está sendo liberado

0

0

O driver tentou liberar um IRP que ainda está associado a um thread.

0x03

Endereço do IRP que está sendo enviado

0

0

O driver passou IoCallDriver um tipo de IRP diferente de IRP_TYPE.

0x04

Endereço do objeto do dispositivo

0

0

O driver passou IoCallDriver um objeto de dispositivo inválido.

0x05

Endereço do objeto de dispositivo associado ao driver ofensivo

IRQL antes de IoCallDriver

IRQL após IoCallDriver

O IRQL foi alterado durante uma chamada para a rotina de expedição do driver.

0x06

Status do IRP

Endereço do IRP que está sendo preenchido

0

O driver chamou IoCompleteRequest com um status marcado como pendente (ou igual a -1).

0x07

Endereço da rotina de cancelamento

Endereço do IRP que está sendo preenchido

0

O driver chamou IoCompleteRequest enquanto sua rotina de cancelamento ainda estava definida.

0x08

Endereço do objeto do dispositivo

Código de função principal do IRP

Código de status de exceção

O driver passou IoBuildAsynchronousFsdRequest um buffer inválido.

0x09

Endereço do objeto do dispositivo

Código de controle de E/S

Código de status de exceção

O driver passou IoBuildDeviceIoControlRequest um buffer inválido.

0x10

IRQL atual

Reserved

Reservado

IoCallDriver foi chamado acima DISPATCH_LEVEL.

0x11

Endereço de rotina de expedição de E/S rápida do driver

IRQL antes de chamar a rotina de expedição do driver

IRQL atual

IoCallDriver foi chamado acima DISPATCH_LEVEL.

0x12

Endereço de rotina de expedição do driver

IRQL antes de chamar a rotina de expedição do driver

IRQL atual

IoCallDriver foi chamado acima DISPATCH_LEVEL.

0x0A

Endereço do objeto do dispositivo

0

0

O driver passou IoInitializeTimer um objeto de dispositivo com um temporizador já inicializado.

0x0C

Endereço do bloco de status de E/S

0

0

O driver passou um bloco de status de E/S para um IRP, mas esse bloco é alocado em uma pilha que já foi desenrolada após esse ponto.

0x0D

Endereço do objeto de evento do usuário

0

0

O driver passou um evento de usuário para um IRP, mas esse evento é alocado em uma pilha que já foi desenrolada após esse ponto.

0x0E

IRQL atual

Endereço do IRP

0

O driver chamado IoCompleteRequest com IRQL > DISPATCH_LEVEL.

0x0F

Endereço do objeto de dispositivo para o qual o IRP está sendo enviado

Ponteiro para o IRP

Ponteiro para objeto de arquivo

O driver enviou uma solicitação de criação com um objeto de arquivo que foi fechado ou que teve sua abertura cancelada.

Além dos erros mencionados na tabela anterior, há vários erros de verificação de E/S que farão com que o Verificador de Driver interrompa o sistema, mas que não são realmente verificações de bugs.

Esses erros fazem com que as mensagens sejam exibidas na tela azul, em um arquivo de despejo de memória e em um depurador de kernel. Essas mensagens aparecerão de forma diferente em cada um desses locais. Quando esses erros ocorrem, o código de verificação de bug hexadecimal 0xC9 e a string de verificação de bug DRIVER_VERIFIER_IOMANAGER_VIOLATION não aparecem na tela azul ou no depurador, embora apareçam em um arquivo de despejo de memória.

Na tela azul, os seguintes dados serão exibidos:

  • A mensagem ERRO DE VERIFICAÇÃO DO SISTEMA DE E/S.

  • A mensagem WDM DRIVER ERROR XXX, em que XXX é um código hexadecimal que representa o erro específico. (Consulte a tabela abaixo para obter uma lista dos códigos de erro de E/S e seus significados.)

  • O nome do driver que causou o erro.

  • Normalmente, o endereço no código do driver em que o erro foi detectado (Parâmetro 2).

Se um despejo de memória no modo kernel tiver sido habilitado, as seguintes informações serão exibidas no arquivo de despejo de memória:

  • A mensagem BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).

  • O código de erro de E/S hexadecimal. (Consulte a tabela abaixo para obter uma lista dos códigos de erro de E/S e seus significados.)

  • Normalmente, o endereço no código do driver em que o erro foi detectado (Parâmetro 2).

Se um depurador de kernel estiver anexado ao sistema que causou essa violação, as seguintes informações serão enviadas ao depurador:

  • A mensagem WDM DRIVER ERROR, juntamente com uma avaliação da gravidade do erro.

  • O nome do driver que causou o erro.

  • Uma cadeia de caracteres descritiva que explica a causa desse erro. Muitas vezes, informações adicionais são passadas, como um ponteiro para o IRP ou um ponteiro para o objeto do dispositivo ou informações de IRQL. (Consulte a tabela abaixo para obter uma lista dessas cadeias de caracteres descritivas e quais informações adicionais são especificadas.)

  • Uma consulta para ação adicional. As respostas possíveis são b (quebrar), i (ignorar), z (zap), r (remover) ou d (desativar). Instruir o sistema operacional a continuar permite que você veja o que aconteceria "no futuro" se esse erro não tivesse ocorrido. Claro, isso geralmente levará a verificações de bugs adicionais. A opção "zap" removerá o ponto de interrupção que causou a descoberta desse erro.

Observação Nenhuma outra verificação de bug pode ser ignorada dessa maneira. Somente esse tipo de erro de verificação de E/S pode ser ignorado, e mesmo esses erros só podem ser ignorados se um depurador de kernel estiver anexado.

A tabela a seguir lista os erros de verificação de E/S que podem aparecer.

Código de erro de E/S Severidade Causa do erro

0x200

Desconhecido

Este código abrange todos os erros desconhecidos de verificação de E/S .

0x201

Erro fatal

Um dispositivo está se excluindo enquanto há outro dispositivo abaixo dele na pilha de driver. Isso pode ocorrer porque o chamador esqueceu de chamar IoDetachDevice primeiro ou o driver inferior pode ter se excluído incorretamente.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

0x202

Erro fatal

Um driver tentou se desanexar de um objeto de dispositivo que não está anexado a nada. Isso pode ocorrer se detach tiver sido chamado duas vezes no mesmo objeto de dispositivo.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço do objeto do dispositivo.

0x203

Erro fatal

Um driver chamou IoCallDriver sem definir a rotina de cancelamento no IRP como NULL.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x204

Erro fatal

O chamador passou NULL como um objeto de dispositivo. Isso é fatal.

Parâmetro 2 - Reservado

Parâmetro 3 - Reservado

0x205

Erro fatal

O chamador está encaminhando um IRP que está atualmente na fila abaixo dele. O código que manipula IRPs retornando STATUS_PENDING neste driver parece estar quebrado.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x206

Erro fatal

O chamador encaminhou incorretamente um IRP (campo de controle não zerado). O driver deve usar IoCopyCurrentIrpStackLocationToNext ou IoSkipCurrentIrpStackLocation.

Parâmetro 2 - Reservado

Parâmetro 3 - Reservado

0x207

Erro fatal

O chamador copiou manualmente a pilha e copiou inadvertidamente a rotina de conclusão da camada superior. O driver deve usar IoCopyCurrentIrpStackLocationToNext.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x208

Erro fatal

Este IRP está prestes a ficar sem locais de pilha. Alguém pode ter encaminhado esse IRP de outra pilha.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x209

Erro fatal

O chamador está concluindo um IRP que está atualmente na fila abaixo dele. O código que manipula IRPs retornando STATUS_PENDING neste driver parece estar quebrado.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x20A

Erro fatal

O chamador de IoFreeIrp está liberando um IRP que ainda está em uso.

Parâmetro 2 - Reservado

Parâmetro 3 - Reservado

0x20B

Erro fatal

O chamador de IoFreeIrp está liberando um IRP que ainda está em uso.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x20C

Erro fatal

O chamador de IoFreeIrp está liberando um IRP que ainda está na fila em um thread.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x20D

Erro fatal

O chamador de IoInitializeIrp passou um IRP que foi alocado com IoAllocateIrp. Isso é ilegal e desnecessário e causou um vazamento de cota. Verifique a documentação do IoReuseIrp se esse IRP estiver sendo reciclado.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x20E

Erro não fatal

Um IRP PNP tem um status inválido. (Qualquer IRP PNP deve ter seu status inicializado para STATUS_NOT_SUPPORTED.)

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x20F

Erro não fatal

Um Power IRP tem um status inválido. (Qualquer IRP do Power deve ter seu status inicializado para STATUS_NOT_SUPPORTED.)

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x210

Erro não fatal

Um IRP WMI tem um status inválido. (Qualquer IRP WMI deve ter seu status inicializado para STATUS_NOT_SUPPORTED.)

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x211

Erro não fatal

O chamador encaminhou um IRP enquanto ignorava um objeto de dispositivo na pilha. O chamador provavelmente está enviando IRPs para o PDO em vez de para o dispositivo retornado por IoAttachDeviceToDeviceStack.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x212

Erro não fatal

O chamador descartou ou não copiou corretamente a pilha do IRP.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x213

Erro não fatal

O chamador alterou o campo de status de um IRP que não entende.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x214

Erro não fatal

O chamador alterou o campo de informações de um IRP que não entende.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x215

Erro não fatal

Um status IRP não STATUS_NOT_SUPPORTED malsucedido para IRP_MJ_PNP está sendo transmitido para a pilha. Os IRPs PNP com falha devem ser concluídos.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x216

Erro não fatal

O status IRP_MJ_PNP definido anteriormente foi convertido em STATUS_NOT_SUPPORTED. Esse status de falha é reservado para uso pelo sistema operacional. Os drivers não podem falhar em um IRP PnP com esse valor.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x217

Erro não fatal

O driver não lidou com um IRP necessário. O driver deve atualizar o status do IRP para indicar se ele foi tratado ou não.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x218

Erro não fatal

O driver respondeu a um IRP reservado para outros objetos de dispositivo em outro lugar na pilha.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x219

Erro não fatal

Um status IRP não STATUS_NOT_SUPPORTED malsucedido para IRP_MJ_POWER está sendo transmitido para a pilha. Os IRPs POWER com falha devem ser concluídos.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x21A

Erro não fatal

O status IRP_MJ_POWER definido anteriormente foi convertido em STATUS_NOT_SUPPORTED.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x21B

Erro não fatal

Um motorista retornou um status suspeito. Isso provavelmente ocorre devido a um bug de variável não inicializada no driver.

Parâmetro 3 - Endereço IRP.

0x21C

Aviso

O chamador copiou a pilha IRP, mas não definiu uma rotina de conclusão. Isso é ineficiente – use IoSkipCurrentIrpStackLocation em vez disso.

Parâmetro 2 - Reservado

Parâmetro 3 - Reservado

0x21D

Erro fatal

Um manipulador de expedição IRP não foi desanexado corretamente da pilha abaixo dele ao receber um IRP de remoção.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x21E

Erro fatal

Um manipulador de expedição IRP não excluiu corretamente seu objeto de dispositivo ao receber um IRP de remoção.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x21F

Erro não fatal

Um driver não preencheu uma rotina de expedição para uma função principal IRP necessária.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x220

Erro não fatal

IRP_MJ_SYSTEM_CONTROL foi preenchido por alguém que não seja o ProviderId. Este IRP deveria ter sido concluído antes ou deveria ter sido transmitido.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - ProviderId.

0x221

Erro fatal

Um manipulador de expedição IRP para um PDO excluiu seu objeto de dispositivo, mas o hardware não foi relatado como ausente em uma consulta de relações de barramento.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x222

Erro fatal

O manipulador de expedição IRP de um filtro de barramento foi desanexado ao receber um IRP de remoção quando o PDO ainda está ativo. Os filtros de barramento devem ser limpos em retornos de chamada FastIoDetach .

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x223

Erro fatal

Um manipulador de expedição IRP para um filtro de barramento excluiu seu objeto de dispositivo, mas o PDO ainda está presente. Os filtros de barramento devem ser limpos em retornos de chamada FastIoDetach .

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x224

Erro fatal

Um manipulador de expedição do IRP retornou um status inconsistente com o campo IoStatus.Status do IRP.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Código de status esperado.

0x225

Erro não fatal

Um manipulador de expedição IRP retornou um status ilegal (0xFFFFFFFF). Isso provavelmente ocorre devido a uma variável de pilha não inicializada. Para depurar esse erro, use o comando ln (List Nearest Symbols) com o endereço especificado.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Código de status.

0x226

Erro fatal

Um manipulador de expedição IRP retornou sem passar ou concluir esse IRP, ou alguém esqueceu de retornar STATUS_PENDING.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x227

Erro fatal

Uma rotina de conclusão de IRP está em código paginável. (Isso nunca é permitido.)

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x228

Erro não fatal

A rotina de conclusão de um driver não marcou o IRP pendente se o campo PendingReturned foi definido no IRP passado para ele. Isso pode fazer com que o Windows trave, especialmente se um erro for retornado pela pilha.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x229

Erro fatal

Uma rotina de cancelamento foi definida para um IRP que está sendo processado atualmente por drivers mais baixos na pilha, possivelmente pisoteando sua rotina de cancelamento.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x22A

Erro não fatal

O objeto de dispositivo físico (PDO) não respondeu a um IRP necessário.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x22B

Erro não fatal

O objeto de dispositivo físico (PDO) esqueceu de preencher a lista de relações de dispositivo com o PDO para a consulta TargetDeviceRelation .

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x22C

Erro fatal

O código que implementa a consulta TargetDeviceRelation não chamou ObReferenceObject no PDO.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x22D

Erro não fatal

O chamador completou um IRP_MJ_PNP não entendeu em vez de passá-lo adiante.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x22E

Erro não fatal

O chamador concluiu um IRP_MJ_PNP bem-sucedido em vez de passá-lo adiante.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x22F

Erro não fatal

O chamador concluiu um IRP_MJ_PNP intocado (em vez de passar o IRP para baixo) ou não PDO falhou no IRP usando o valor ilegal de STATUS_NOT_SUPPORTED.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x230

Erro não fatal

O chamador completou um IRP_MJ_POWER não entendeu em vez de passá-lo adiante.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x231

Erro fatal

O chamador concluiu uma IRP_MJ_POWER bem-sucedida em vez de passá-la adiante.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x232

Erro não fatal

O chamador concluiu um IRP_MJ_POWER intocado (em vez de passar o IRP para baixo) ou não PDO falhou no IRP usando o valor ilegal de STATUS_NOT_SUPPORTED.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x233

Erro não fatal

O campo de versão da estrutura de recursos de consulta em um IRP de recursos de consulta não foi inicializado corretamente.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x234

Erro não fatal

O campo de tamanho da estrutura de recursos de consulta em um IRP de recursos de consulta não foi inicializado corretamente.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x235

Erro não fatal

O campo de endereço da estrutura de recursos de consulta em um IRP de recursos de consulta não foi inicializado corretamente como -1.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x236

Erro não fatal

O campo Número da interface do usuário da estrutura de recursos de consulta em um IRP de recursos de consulta não foi inicializado corretamente como -1.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x237

Erro fatal

Um driver enviou um IRP restrito apenas para uso do sistema.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x238

Aviso

O chamador de IoInitializeIrp passou um IRP que foi alocado com IoAllocateIrp. Isso é ilegal, desnecessário e afeta negativamente o desempenho em uso normal. Se esse IRP estiver sendo reciclado, consulte IoReuseIrp no Windows Driver Kit.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x239

Aviso

O chamador de IoCompleteRequest está concluindo um IRP que nunca foi encaminhado por meio de uma chamada para IoCallDriver ou PoCallDriver. Isso pode ser um bug.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x23A

Erro fatal

Um driver encaminhou um IRP em um IRQL que é ilegal para este código principal.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x23B

Erro não fatal

O chamador alterou o campo de status de um IRP que não entende.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

A tabela a seguir lista erros adicionais de verificação de E/S que podem aparecer. Esses erros aparecem quando a verificação de E/S aprimorada é ativada. Para obter mais informações, consulte Verificação de E/S aprimorada.

Código de erro de E/S Severidade Causa do erro

0x23C

Erro fatal

Um driver concluiu um IRP sem definir a rotina de cancelamento no IRP como NULL.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x23D

Erro não fatal

Um driver retornou STATUS_PENDING mas não marcou o IRP pendente por meio de uma chamada para IoMarkIrpPending.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Código de status.

0x23E

Erro não fatal

Um driver marcou um IRP pendente, mas não retornou STATUS_PENDING.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Código de status.

0x23F

Erro fatal

Um driver não herdou o bit DO_POWER_PAGABLE da pilha à qual ele foi anexado.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x240

Erro fatal

Um driver está tentando excluir um objeto de dispositivo que já foi excluído por meio de uma chamada anterior para IoDeleteDevice.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x241

Erro fatal

Um driver desanexou seu objeto de dispositivo durante um IRP de remoção surpresa.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x242

Erro fatal

Um driver excluiu seu objeto de dispositivo durante um IRP de remoção surpresa.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x243

Erro fatal

Um driver falhou ao limpar o sinalizador DO_DEVICE_INITIALIZING no final de AddDevice.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

Parâmetro 4 -

0x244

Erro fatal

Um driver não copiou o sinalizador DO_BUFFERED_IO ou DO_DIRECT_IO do objeto de dispositivo ao qual ele está anexado.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x245

Erro fatal

Um driver definiu as bandeiras DO_BUFFERED_IO e DO_DIRECT_IO. Esses sinalizadores são mutuamente exclusivos.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x246

Erro fatal

Um driver falhou ao copiar o campo DeviceType do objeto de dispositivo ao qual ele está anexado.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x247

Erro fatal

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

Um driver falhou em um IRP que não pode ser legalmente reprovado.

0x248

Erro fatal

Um driver adicionou um objeto de dispositivo que não é um PDO a uma consulta de relações de dispositivo.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x249

Erro não fatal

Um driver enumerou dois PDOs filho que retornaram IDs de dispositivo idênticas.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Primeiro endereço do objeto do dispositivo.

Parâmetro 4 - Segundo endereço do objeto do dispositivo.

0x24A

Erro fatal

Um driver chamou erroneamente uma função de E/S de arquivo com IRQL diferente de PASSIVE_LEVEL.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Reservado.

Parâmetro 4 - Reservado.

0x24B

Erro fatal

Um driver concluiu uma solicitação IRP_MN_QUERY_DEVICE_RELATIONS do tipo TargetDeviceRelation como bem-sucedida, mas não preencheu corretamente a solicitação ou encaminhou o IRP para a pilha de hardware subjacente.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço do objeto do dispositivo.

0x24C

Erro não fatal

Um driver retornou STATUS_PENDING mas não marcou o IRP pendente por uma chamada para IoMarkIrpPending.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Código de status.

0x24D

Erro fatal

Um driver passou um objeto de dispositivo inválido para uma função que requer um PDO.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Endereço do objeto do dispositivo.

0x300

Erro não fatal

Um motorista retornou um status suspeito. Isso provavelmente ocorre devido a um bug de variável não inicializada no driver.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Código de status suspeito.

0x301

Erro não fatal

Um driver encaminhou um IRP no IRQL > DISPATCH_LEVEL.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Valor IRQL incorreto

0x302

Erro não fatal

Um driver encaminhou um IRP no IRQL > = APC_LEVEL.

O Gerenciador de E/S precisará enfileirar um APC para concluir essa solicitação. O APC não poderá ser executado porque o chamador já está no nível do APC, portanto, é provável que o chamador trave.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Parâmetro 4 - Valor IRQL incorreto.

0x306

Erro não fatal

O driver está concluindo uma solicitação IRP_MJ_PNP (principal) e IRP_MN_REMOVE_DEVICE (secundária) com um código de status de falha.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x307

Erro não fatal

O driver emitiu uma solicitação de E/S com um evento que já foi sinalizado e recebeu uma resposta STATUS_PENDING. Isso pode resultar em desenrolamento antes que a E/S seja concluída.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x310

Erro não fatal

O driver está reinicializando um IRP que ainda está em uso.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x311

Erro não fatal

O driver está reinicializando um IRP que foi criado com IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

0x312

Erro não fatal

O chamador forneceu o campo Informações de Status do IRP com um valor maior que a seção de saída do buffer do sistema.

Parâmetro 2 - O endereço no código do driver em que o erro foi detectado.

Parâmetro 3 - Endereço IRP.

Causa

Consulte a descrição de cada código na seção Parâmetros para obter uma descrição da causa.

Resolução

Essa verificação de bug só pode ocorrer quando o Verificador de Driver tiver sido instruído a monitorar um ou mais drivers. Se você não pretendia usar o Verificador de Driver, você deve desativá-lo. Para obter mais informações, consulte "Como controlar o Verificador de Driver" no Verificador de Driver. Você também pode considerar atualizar ou remover o driver que causou esse problema.

Se você for o desenvolvedor do driver, use as informações obtidas por meio dessa verificação de bugs para corrigir os bugs em seu código.

Para obter detalhes completos sobre o Verificador de Driver, consulte Verificador de Driver.