Compartilhar via


Conjunto de regras do VirtualStorport (Storport)

Utilize essas regras para verificar se o driver chama corretamente DDIs que são de especial interesse para drivers de miniport virtual do Storport (VMiniport).

Nesta seção

Tópico Descrição

DoubleExFreePool

Essa regra verifica se o driver não tenta liberar o mesmo bloco de memória do pool duas vezes.

DoubleKeSetEvent

Essa regra verifica se KeSetEvent não é chamado duas vezes no mesmo objeto de evento. Se o mesmo objeto de evento for passado para a rotina, o driver falhará na regra.

IoFreeIrp

Essa regra verifica se um IRP alocado por IoAllocateIrp será liberado pelo IoFreeIrp ou sua rotina de conclusão será definida por IoSetCompletionRoutine.

StorPortVirtualDevice

Essa regra verifica se, ao sair da rotina HwStorFindAdapter , o campo VirtualDevice na estrutura PORT_CONFIGURATION_INFORMATION (Storport) foi definido como FALSE. A regra se aplica somente a miniportos storport físicos.

StorPortVirtualDevice2

Essa regra verifica se, ao sair da rotina HwStorFindAdapter , o campo VirtualDevice na estrutura PORT_CONFIGURATION_INFORMATION (Storport) foi definido como TRUE. A regra se aplica somente a miniportos storport virtuais.

WithinCriticalRegion

Essa regra verifica se as chamadas do driver para determinadas funções de sincronização são feitas somente enquanto a distribuição normal do APC do kernel está desabilitada.

ZwRegistryCreate

Essa regra verifica se o identificador de uma chave do Registro criada com ZwCreateKey é usado corretamente por outras rotinas ZwXxx . A rotina ZwOpenKey não deve ser chamada em um identificador já aberto. As rotinas ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose e ZwDeleteKey não devem ser chamadas em um identificador que não esteja aberto. O handle também deve ser fechado antes de retornar.

ZwRegistryOpen

Essa regra verifica se o identificador da chave do Registro aberto via ZwOpenKey é usado corretamente por outras rotinas ZwXxx. As rotinas ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose e ZwDeleteKey não devem ser chamadas em um identificador que não esteja aberto. O manipulador também deve ser fechado antes de retornar.

Para selecionar o conjunto de regras do VirtualStorport

  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 VirtualStorport.

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

    msbuild /t:sdv /p:Inputs="/check:VirtualStorport.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).