Partilhar via


Atraso na sincronização do kernel

Observação

Este marcar foi preterido a partir Windows 10 Build 19042 e superior

A opção Desativação de atraso de sincronização do Kernel randomiza agendamentos de thread para ajudar a detectar bugs de simultaneidade em drivers.

Cuidado Essa opção não se destina a ser usada quando você está verificando todos (ou uma grande coleção de) drivers em um computador. Essa opção deve ser usada somente quando você estiver fazendo testes direcionados de drivers individuais ou seus drivers de filtro anexados. Usar essa opção em um grande número de drivers ao mesmo tempo pode causar resultados imprevisíveis e pode forçar falhas em componentes não relacionados aos drivers que você está testando.

Nota Essa opção está disponível a partir do Windows 8.1.

Quando a opção é selecionada, o Verificador de Driver insere atrasos aleatórios em vários pontos nos threads. Assim como a opção Desativação de Atraso do Power Framework , a opção de sincronização de kernel delay fuzzing usa um algoritmo que fornece ajuda para melhorar as chances de encontrar erros em drivers. O atraso na sincronização do kernel melhora o teste de estresse tradicional, em que o programa de teste é executado por dias ou até semanas na esperança de detectar problemas que possam ocorrer na execução simultânea.

Ativando essa opção

Você pode ativar o recurso de sincronização do Kernel para um ou mais drivers usando o Gerenciador de Verificador de Driver ou a linha de comando Verifier.exe. Para obter detalhes, consulte Selecionando opções do verificador de driver. Você deve reiniciar o computador para ativar ou desativar a opção Desativação de Atraso do Power Framework.

Nota A opção Desativação de atraso de sincronização do Kernel aumenta a probabilidade de condições de corrida aparecerem em runtime inserindo atrasos aleatórios em várias chamadas de função de API de kernel. Para que esses atrasos sejam mais eficazes, você pode habilitar essa opção com outras opções do Verificador de Driver. Devido aos atrasos que podem ser introduzidos, você pode esperar que o computador tenha uma resposta mais lenta.

  • Na linha de comando

    Na linha de comando, o fuzzing de atraso de sincronização do Kernel é representado pelo verificador /flags 0x00800000 (Bit 23). Para ativar o Power Framework Delay Fuzzing, use um valor de sinalizador de 0x00800000 ou adicione 0x00800000 ao valor do sinalizador. Por exemplo:

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

  • Usando o Gerenciador de Verificador de Driver

    1. Iniciar o Gerenciador de Verificador 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 (marcar) Atraso de sincronização do kernel.
    5. Reinicie o computador.

Por que a sincronização do Kernel atrasa o fuzzing?

A maioria das rotinas de driver é reentrante e simultânea. Bugs relacionados à simultaneidade são notoriamente difíceis de encontrar. Os bugs podem incluir deadlocks e condições de corrida, causados por problemas de sincronização e tempo ruim entre threads. O teste de estresse é a técnica tradicional de teste para encontrar esses bugs, mas pode ser lento e caro, e os resultados nem sempre são reproduzíveis. A opção Desativação de atraso de sincronização do Kernel aumenta a probabilidade de condições de corrida aparecerem em runtime inserindo atrasos aleatórios em várias chamadas de função da API do kernel. Por exemplo, se uma condição de corrida resultar em um driver acessando o IRP depois que ele tiver sido cancelado, a opção de sincronização do Kernel aumentará as chances dessa condição de corrida de forma que o Verificador de Driver detecte o erro durante o teste. A opção Desativação de atraso de sincronização do Kernel aprimora a potência e a eficácia do Verificador de Driver.