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.