Compartilhar via


Verificação de E/S aprimorada

Esse recurso está disponível apenas no Windows XP e versões posteriores do sistema operacional Windows.

No Windows 7 e versões posteriores do sistema operacional Windows, a Verificação de E/S aprimorada é ativada automaticamente quando você seleciona Verificação de E/S. Não está disponível ou não é necessário selecioná-lo como uma opção separada.

Quando a Verificação de E/S Avançada é ativada, o Verificador de Driver monitora as chamadas de várias rotinas do Gerenciador de E/S e executa testes de estresse de IRPs PnP, IRPs de energia e IRPs WMI.

No Windows Vista e no Windows XP, a Verificação de E/S Aprimorada é ativada independentemente da Verificação de E/S, mas a seleção de ambas as opções fornece um teste mais completo dos métodos de interface de E/S em um driver.

Recursos da verificação de E/S aprimorada

O Verificador de Driver adiciona as seguintes verificações quando você ativa a Verificação de E/S Avançada.

  • Monitora todos os IRPs para garantir que o driver retorne STATUS_PENDING se e somente se ele tiver chamado IoMarkIrpPending.

  • Monitora o uso de IoDeleteDevice para verificar se o driver não está excluindo o mesmo dispositivo mais de uma vez e para detectar desanexação e exclusão inadequadas de objetos de dispositivo.

  • Verifica se o driver desenrola corretamente todas as chamadas IoSkipCurrentIrpStackLocation.

Novas tensões e testes incluem:

  • Embaralhar a ordem dos dispositivos enumerados para garantir que os drivers PnP (Plug and Play) não façam suposições sobre a ordem de início do dispositivo.

  • Ajustando o status de IRPs PnP e Power quando eles são concluídos, para capturar drivers que retornam um status incorreto de suas rotinas de expedição.

  • Envio de IRPs de energia falsos para testar bugs de caminho de código de driver.

  • Envio de IRPs WMI falsos para testar bugs de caminho de código de driver.

  • Inserindo um filtro falso em cada pilha WDM.

Exibindo erros de verificação de E/S aprimorada

Os erros de driver capturados pela Verificação de E/S aprimorada são exibidos da mesma maneira que aqueles capturados pela Verificação de E/S de nível 2.

Na tela azul, esses erros são anotados pela mensagem ERRO DE VERIFICAÇÃO DO SISTEMA DE E/S e pela string ERRO DE DRIVER WDM XXX, em que XXX é um código de erro de E/S.

Em um arquivo de despejo de memória, esses erros são anotados pela mensagem BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION), juntamente com o código de erro de E/S. Nesse caso, o código de erro de E/S aparece como o primeiro parâmetro da 0xC9 de verificação de bugs.

Em um depurador de kernel (KD ou WinDbg), esses erros são anotados pela mensagem WDM DRIVER ERROR e uma cadeia de caracteres de texto descritiva. Quando o depurador de kernel está ativo, é possível ignorar os erros de Nível 2 e retomar a operação do sistema. (Isso não é possível com nenhuma outra verificação de bug.)

A tela azul, o arquivo de despejo de memória e o depurador de kernel também exibem informações adicionais. Para obter uma descrição completa de todas as mensagens de erro de nível 2 de verificação de E/S, consulte Verificação de bugs 0xC9.

Ativando esta opção

Você pode ativar o recurso Verificação de E/S Aprimorada para um ou mais drivers usando o Gerenciador de Verificação de Driver ou a linha de comando Verifier.exe. Para obter detalhes, consulte Selecionando opções do verificador de driver.

Observação No Windows 7 e versões posteriores do sistema operacional Windows, a Verificação de E/S Aprimorada é ativada automaticamente quando você seleciona Verificação de E/S. Não está disponível ou não é necessário selecioná-lo como uma opção separada.

  • Na linha de comando

    Na linha de comando, a opção Verificação de E/S aprimorada é representada pelo Bit 6 (0x40). Para ativar a Verificação de E/S Aprimorada, use um valor de sinalizador de 0x40 ou adicione 0x40 ao valor do sinalizador. Por exemplo:

    verifier /flags 0x40 /driver MyDriver.sys
    

    O recurso estará ativo após a próxima inicialização.

    No Windows Vista e versões posteriores do Windows, você também pode ativar e desativar a Verificação de E/S Avançada sem reinicializar o computador adicionando o parâmetro /volatile ao comando. Por exemplo:

    verifier /volatile /flags 0x40 /adddriver MyDriver.sys
    

    Essa configuração entra em vigor imediatamente, mas é perdida quando você desliga ou reinicializa o computador. Para obter detalhes, consulte Usando configurações voláteis.

  • Usando o Gerenciador de Verificação de Driver

    1. Inicie o Gerenciador de Verificação de Driver. Digite Verificador em uma janela do Prompt de Comando.
    2. Selecione Criar configurações personalizadas (para desenvolvedores de código) e clique em Avançar.
    3. Selecione Selecionar configurações individuais em uma lista completa.
    4. Selecione (marque) Verificação de E/S aprimorada.

    O recurso de verificação de DMA também está incluído nas configurações padrão. Para usar esse recurso, no Gerenciador de Verificação de Driver, clique em Criar Configurações Padrão.