Partilhar via


NDIS (conjunto de regras de bloqueio)

Use essas regras para verificar se o driver gerencia corretamente os recursos compartilhados.

Nesta seção

Tópico Descrição

SpinLock

A regra SpinLock verifica o uso correto da interface de bloqueio de rotação do NDIS. Essa regra especifica que as chamadas para NdisAcquireSpinLock são feitas somente quando o SpinLock está no estado desbloqueado. Essa regra também verifica se o SpinLock é liberado antes que a rotina do manipulador de miniportos seja encerrada.

SpinLockBalanced

A regra SpinLockBalanced verifica se o número de chamadas para funções que adquirem um SpinLock são iguais ao número de chamadas para funções que liberam o mesmo SpinLock.

SpinLockDpr

A regra SpinLockDpr verifica o uso correto da interface de bloqueio de rotação do NDIS.

Essa regra especifica que as chamadas para NdisDprAcquireSpinLock são feitas somente quando o bloqueio de rotação está no estado desbloqueado. Essa regra também verifica se o bloqueio de rotação é liberado antes da saída da rotina do manipulador de miniportos.

SpinLockDprRelease

A regra SpinLockDprRelease verifica se as chamadas para NdisAcquireSpinLock ou NdisDprAcquireSpinLock são chamadas somente quando o SpinLock é o estado "desbloqueado". Essa regra também verifica se, antes de sair da rotina do manipulador de miniportos, o SpinLock foi lançado.

SpinLockRelease

A regra SpinLockRelease especifica que um driver não deve liberar um bloqueio de rotação (NdisReleaseSpinLock) sem primeiro adquiri-lo.

Para selecionar o conjunto de regras de bloqueio

  1. Selecione seu projeto de driver (.vcxProj) no Microsoft Visual Studio. No menu Driver , clique em Iniciar Verificador de Driver Estático....

  2. Clique na guia Regras . Em Conjuntos de Regras, selecione Bloqueio.

    Para selecionar o conjunto de regras padrão em uma janela do prompt de comando do desenvolvedor do Visual Studio, especifique Locking.sdv com a opção /marcar. Por exemplo:

    msbuild /t:sdv /p:Inputs="/check:Locking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Para obter mais informações, consulte Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).