NDIS (conjunto de regras de uso de DDI)
Use essas regras para verificar se o driver usa corretamente os DDIs do NDIS corretamente.
Nesta seção
Tópico | Descrição |
---|---|
A regra Init_DeRegisterInterrupt especifica que, se NdisMRegisterInterruptEx for chamado pelo menos uma vez durante MPInitilize, NdisMDeregisterInterruptEx deverá ser chamado pelo menos uma vez no MPHaltEx. |
|
A regra Init_NdisAllocateIoWorkItem especifica que, se NdisAllocateIoWorkItem for chamado pelo menos uma vez durante MiniportInitializeEx, a função NdisFreeIoWorkItem deverá:
|
|
A regra Init_RegisterInterrupt especifica que o registro de interrupções, que geralmente acontece durante a inicialização, deve ser desfeito se algo der errado no processo de inicialização ou durante a interrupção do driver de miniporte. Se NdisMRegisterInterruptEx for chamado pelo menos uma vez durante MiniportInitializeEx, a função NdisMDeregisterInterruptEx deverá ser chamada pelo menos uma vez em MiniportHaltEx. |
|
A regra Init_RegisterSG especifica que o registro da SG (lista de coleta de dispersão), que geralmente acontece durante a inicialização, deve ser desfeito se algo der errado no processo de inicialização ou durante a interrupção do driver de miniport. Se NdisMRegisterScatterGatherDma for chamado pelo menos uma vez durante MiniportInitializeEx, a função NdisMDeregisterScatterGatherDma deverá ser chamada pelo menos uma vez em MiniportHaltEx. |
|
Um driver de filtro deve chamar NdisFDeregisterFilterDriver de sua rotina FilterDriverUnload . |
|
Depois que NdisMDeregisterInterruptEx retornar o controle, o driver de miniporto não poderá chamar a função NdisMSynchronizeWithInterruptEx . |
|
A regra NullCheck verifica se um valor NULL dentro do código do driver não é desreferenciado posteriormente no driver. Essa regra relatará um defeito se uma dessas condições for verdadeira:
Com violações da regra NullCheck, as instruções de código mais relevantes são realçadas no painel de árvore de rastreamento. Para obter mais informações sobre como trabalhar com a saída do relatório, consulte Relatório do Verificador de Driver Estático e Noções básicas sobre o Visualizador de Rastreamento. |
Para selecionar o conjunto de regras de uso de DDI
Selecione seu projeto de driver (.vcxProj) no Microsoft Visual Studio. No menu Driver , clique em Iniciar Verificador de Driver Estático....
Clique na guia Regras . Em Conjuntos de Regras, selecione DDIUsage.
Para selecionar o conjunto de regras padrão em uma janela do prompt de comando do desenvolvedor do Visual Studio, especifique DDIUsage.sdv com a opção /marcar. Por exemplo:
msbuild /t:sdv /p:Inputs="/check:DDIUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Para obter mais informações, consulte Usando o Verificador de Driver Estático para localizar defeitos em drivers e comandos do Verificador de Driver Estático (MSBuild).