Partilhar via


Conjunto de regras do VirtualStorport (Storport)

Use essas regras para verificar se o driver chama corretamente DDIs que são de particular interesse para drivers de miniporto 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 por 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 miniportes físicos do StorPort.

StorPortVirtualDevice2

Essa regra verifica se, após a saída da rotina HwStorFindAdapter , o campo VirtualDevice na estrutura PORT_CONFIGURATION_INFORMATION (Storport) foi definido como TRUE. A regra se aplica somente a miniportes storport virtuais.

WithinCriticalRegion

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

ZwRegistryCreate

Essa regra verifica se o identificador para 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 identificador também deve ser fechado antes de retornar.

ZwRegistryOpen

Essa regra verifica se o identificador para a chave do Registro aberta por meio de 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 identificador também deve ser fechado antes de retornar.

Para selecionar o conjunto de regras 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 do prompt de comando do desenvolvedor do Visual Studio, especifique VirtualStorport.sdv com a opção /marcar. 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).