0xC9 de Verificação de Bugs: DRIVER_VERIFIER_IOMANAGER_VIOLATION

O bug DRIVER_VERIFIER_IOMANAGER_VIOLATION marcar tem um valor de 0x000000C9. Esse é o bug marcar código 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 ao usar o computador, consulte Solucionar erros de tela azul.

Parâmetros de DRIVER_VERIFIER_IOMANAGER_VIOLATION

Quando o Verificador de Driver estiver ativo e a Verificação de E/S estiver selecionada, várias violações de E/S farão com que esse bug marcar seja emitido. 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 por IoCallDriver um Tipo IRP não igual a IRP_TYPE.

0x04

Endereço do objeto do dispositivo

0

0

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

0x05

Endereço do objeto do 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 IRP

Endereço do IRP que está sendo concluído

0

O driver chamado 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 concluído

0

O driver chamado 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 por 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 por IoBuildDeviceIoControlRequest um buffer inválido.

0x10

IRQL atual

Reservado

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 a 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 E/S status 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 o 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, na verdade, 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 bug hexadecimal marcar código 0xC9 e o bug marcar cadeia de caracteres DRIVER_VERIFIER_IOMANAGER_VIOLATION não aparecem na tela azul ou no depurador, embora eles 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 ERRORXXX, 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 aparecerão 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 ERRO DE DRIVER do WDM, 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 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 outra ação. As respostas possíveis são b (break), i (ignore), z (zap), r (remove) ou d (disable). Instruir o sistema operacional a continuar permite que você veja o que aconteceria "abaixo da linha" se esse erro não tivesse ocorrido. É claro que isso geralmente levará a verificações de bugs adicionais. A opção "zap" realmente removerá o ponto de interrupção que causou a descoberta desse erro.

Nota Nenhuma outra verificação de bug pode ser ignorada dessa maneira. Somente esse tipo de erros de Verificação de E/S pode ser ignorado e até mesmo esses erros só poderão 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

Unknown

Esse código aborda todos os erros de Verificação de E/S desconhecidos.

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 desanexar de um objeto de dispositivo que não está anexado a nada. Isso poderá ocorrer se a desanexação tiver sido chamada 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 OS IRPs que retornam 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

Esse 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 OS IRPs que retornam 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 de IoReuseIrp se esse IRP está 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 uma status inválida. (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 POWER IRP 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 uma status inválida. (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 ao ignorar 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 destruiu 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 status de um IRP que ele 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 não bem-sucedido para IRP_MJ_PNP está sendo passado para baixo. 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 IRP_MJ_PNP status definido anteriormente foi convertido em STATUS_NOT_SUPPORTED. Essa status de falha é reservada para uso pelo sistema operacional. Os drivers não podem falhar 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 manipulado 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 da 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 não bem-sucedido para IRP_MJ_POWER está sendo passado para baixo. Os POWER IRPs 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 IRP_MJ_POWER status 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 .

Parâmetro 2 – Reservado

Parâmetro 3 – Reservado

0x21D

Erro fatal

Um manipulador de expedição IRP não se desanexou corretamente da pilha abaixo dela ao receber um IRP de remoção.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 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.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 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 de IRP necessária.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x220

Erro não fatal

IRP_MJ_SYSTEM_CONTROL foi concluído por alguém diferente da ProviderId. Esse IRP deveria ter sido concluído anteriormente ou deveria ter sido passado para baixo.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 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.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 4 – Endereço do objeto do dispositivo.

0x222

Erro fatal

O manipulador de expedição IRP de um Filtro de Barramento desanexou ao receber um IRP de remoção quando o PDO ainda estiver ativo. Os Filtros de Barramento devem limpo em retornos de chamada FastIoDetach.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 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 limpo em retornos de chamada FastIoDetach.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 4 – Endereço do objeto do dispositivo.

0x224

Erro fatal

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

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 4 – código de status esperado.

0x225

Erro não fatal

Um manipulador de expedição IRP retornou uma status que é ilegal (0xFFFFFFFF). Isso provavelmente ocorre devido a uma variável de pilha não inicializada. Para depurar esse erro, use o comando ln (Listar Símbolos Mais Próximos) com o endereço especificado.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

Param 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.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x227

Erro fatal

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

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 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 seja travado, especialmente se um erro for retornado pela pilha.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 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 pisando sua rotina de cancelamento.

Param 2 – Reservado.

Param 3 – Reservado.

0x22A

Erro não fatal

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

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x22B

Erro não fatal

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

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x22C

Erro fatal

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

Param 2 – Reservado.

Param 3 – Reservado.

0x22D

Erro não fatal

O chamador concluiu um IRP_MJ_PNP não entendeu em vez de passá-lo para baixo.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x22E

Erro não fatal

O chamador concluiu uma IRP_MJ_PNP bem-sucedida em vez de passá-la para baixo.

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 uma IRP_MJ_PNP intocada (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 concluiu um IRP_MJ_POWER não entendeu em vez de passá-lo para baixo.

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 para baixo.

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 uma IRP_MJ_POWER intocada (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 no uso normal. Se esse IRP estiver sendo reciclado, consulte IoReuseIrp no Kit de Driver do Windows.

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 esse 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 status de um IRP que ele 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 avançada de E/S é ativada. Para obter mais informações, consulte Verificação avançada de E/S.

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 DO_POWER_PAGABLE bit da pilha à qual ele se conectou.

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 uma remoção surpresa 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 – Endereço do objeto do dispositivo.

0x242

Erro fatal

Um driver excluiu seu objeto de dispositivo durante uma remoção surpresa 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 – Endereço do objeto do dispositivo.

0x243

Erro fatal

Um driver não conseguiu limpar o sinalizador de 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 DO_BUFFERED_IO ou o sinalizador DO_DIRECT_IO do objeto de dispositivo ao qual ele está se conectando.

Parâmetro 2 - Reservado.

Parâmetro 3 - Reservado.

0x245

Erro fatal

Um driver definiu os sinalizadores 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á se conectando.

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 reprovado legalmente.

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 de 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.

Param 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 de APC, portanto, é provável que o chamador deadlock.

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 de IRP_MJ_PNP (principal) e IRP_MN_REMOVE_DEVICE (secundária) com uma falha status código.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 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.

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x310

Erro não fatal

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

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x311

Erro não fatal

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

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 3 – endereço IRP.

0x312

Erro não fatal

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

Param 2 – o endereço no código do driver em que o erro foi detectado.

Param 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

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. Para obter mais informações, confira "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 desse bug marcar para corrigir os bugs em seu código.

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