Partilhar via


Verificação de conformidade DDI

A opção de verificação de conformidade da Interface de Driver de Dispositivo (DDI) determina se o driver interage corretamente com o kernel do sistema operacional Windows.

Observação Esta opção está disponível a partir do Windows 8. A partir do Windows 8.1, você pode testar regras adicionais, selecionando a opção Ativando a verificação de conformidade DDI (adicional).

Verificação de conformidade DDI

A opção de verificação de conformidade DDI aplica as mesmas regras de uso da interface de driver de dispositivo (DDI) que o Verificador de Driver Estático usa para verificar se o driver realiza chamadas de função no IRQL exigido para a função ou adquire e libera corretamente os spinlocks.

Quando esta opção está ativa e o Driver Verifier deteta que o driver viola uma das regras de conformidade DDI, o Driver Verifier emite uma verificação de erros 0xC4 (com o Parâmetro 1 igual ao identificador da regra de conformidade específica).

Quando você seleciona a opção de verificação de conformidade DDI, as seguintes regras são incluídas.

GuardedRegions (a partir do Windows 8.1)

IoSetCompletionExCompleteIrp (a partir do Windows 8.1)

IrqlApcLte

IrqlDispatch

IrqlExAllocatePool

IrqlExApcLte1

IrqlExApcLte2

IrqlExApcLte3

IrqlExPassive

IrqlIoApcLte

IrqlIoDispatch

IrqlIoPassive1

IrqlIoPassive2

IrqlIoPassive3

IrqlIoPassivo4

IrqlIoPassive5

IrqlKeApcLte1

IrqlKeApcLte2

IrqlKeDispatchLte

IrqlKeReleaseSpinLock

IrqlKeSetEvent

IrqlMmApcLte

IrqlMmDispatch

IrqlObPassive

IrqlPsPassive

IrqlReturn (a partir do Windows 8.1)

IrqlRtlPassive

IrqlZwPassive

NdisOidComplete (a partir do Windows 8.1)

NdisOidDoubleComplete (a partir do Windows 8.1)

PnpRemove (a partir do Windows 8.1)

RequestedPowerIrp (a partir do Windows 8.1)

QueuedSpinLock (a partir do Windows 8.1)

SpinLock (a partir do Windows 8.1)

Estas duas regras são atualmente opcionais, mas recomendadas.

(Opcional) IrqlNtifsApcPassive

(Opcional) IrqlIoRtlZwPassive

Ativando a opção de verificação de conformidade DDI

Você pode ativar o recurso de verificação de conformidade DDI para um ou mais drivers usando o Driver Verifier Manager ou a linha de comando Verifier.exe. Para obter detalhes, consulte Selecionando Opções do Verificador de Controladores. Você deve reiniciar o computador para ativar ou desativar a opção de verificação de conformidade DDI. O recurso de verificação de conformidade DDI é ativado quando você usa as configurações padrão (/standard).

  • Na linha de comando

    Na linha de comando, a verificação de conformidade DDI é representada pelo verificador /flags 0x00020000 (Bit 17). Para ativar a verificação de conformidade DDI, use um valor de sinalizador de 0x00020000 ou adicione 0x00020000 ao valor do sinalizador. Por exemplo:

    verifier /flags 0x00020000 /driver MyDriver.sys
    

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

  • Usando o Gestor do Verificador de Drivers

    1. Inicie o Driver Verifier Manager. Digite Verifier numa janela da Linha de Comandos.
    2. Selecione Criar configurações personalizadas (para desenvolvedores de código) e clique em Avançar.
    3. Selecione configurações individuais de uma lista completa.
    4. Selecione (verifique) Verificação de conformidade DDI.
    5. Reinicie o computador.

Verificação de conformidade DDI (adicional)

A partir do Windows 8.1, a opção de verificação de conformidade DDI (adicional) fornece regras adicionais para determinar se o driver interage corretamente com o kernel do sistema operacional Windows. Quando você seleciona a opção de verificação de conformidade DDI (adicional), as seguintes regras são testadas:

Ativando a opção de verificação de conformidade DDI (adicional)

Observação

Esta verificação foi preterida a partir do Windows 10 Build 19042 e superior

Você pode ativar as regras adicionais de verificação de conformidade DDI para um ou mais controladores usando o Gestor do Verificador de Controladores ou a linha de comando Verifier.exe. Para obter detalhes, consulte Selecionando Opções do Verificador de Controladores. Você deve reiniciar o computador para ativar ou desativar a opção de verificação de conformidade DDI (adicional).

  • Na linha de comando

    Na linha de comando, a verificação de conformidade DDI é representada pelo verificador /flags 0x00080000 (Bit 19). Para ativar a verificação de conformidade DDI (adicional), use um valor de sinalizador de 0x00080000 ou adicione 0x00080000 ao valor do sinalizador. Por exemplo:

    verifier /flags 0x00080000 /driver MyDriver.sys
    

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

  • Usando o Gestor do Verificador de Drivers

    1. Para iniciar o Gestor do Verificador do Driver, digite Verifier numa janela de linha de comandos.
    2. Selecione Criar configurações personalizadas (para desenvolvedores de código) e clique em Avançar.
    3. Selecione configurações individuais de uma lista completa.
    4. Selecione (verificar) Verificação de conformidade DDI (adicional).
    5. Reinicie o computador.

Ativar a opção de verificação de conformidade DDI (IRQL adicional)

Você pode ativar as regras adicionais de conformidade DDI do IRQL para um ou mais controladores usando o comando de linha Verifier.exe. Para obter detalhes, consulte Selecionando Opções do Verificador de Controladores. Você deve reiniciar o computador para ativar ou desativar as regras adicionais de conformidade DDI IRQL.

Na linha de comando, a verificação adicional de IRQL de conformidade com DDI é representada por um valor de classe de regra de 35. Por exemplo:

verifier /ruleclasses 35 /driver MyDriver.sys

OU

verifier /rc 35 /driver MyDriver.sys

O conjunto adicional de regras IRQL consiste nas duas regras a seguir.

(Opcional) IrqlNtifsApcPassive

(Opcional) IrqlIoRtlZwPassive