Partilhar via


Conjunto de regras SrbProcessing (Storport)

Use essas regras para verificar se o driver processa corretamente as solicitações SRB.

Nesta secção

Tópico Descrição

SpDuplex

Esta regra verifica se esta miniporta está no modo Full Duplex . Qualquer driver construído de acordo com o modelo StorPort-miniport deve estar no modo Full Duplex . Half Duplex só deve ser usado ao portar um driver SCSI existente para StorPort.

SpNoWait

Esta regra verifica se as esperas ou a alocação de dados não são executadas dentro do StartIo.

SpReturnValue

Esta regra verifica se as implementações do driver de HwStorFindAdapter e VirtualHwStorFindAdapter retornam um status válido. Um status válido é um dos seguintes: SP_RETURN_FOUND, SP_RETURN_ERROR, SP_RETURN_BAD_CONFIG ou SP_RETURN_NOT_FOUND.

StorPortAllocatePool

Esta regra verifica que o miniport não deve tentar chamar StorPortFreePool em um buffer libertado.

StorPortAllocatePool2

Esta regra verifica que o miniporto não deve tentar chamar StorPortAllocatePool em um buffer já alocado sem desalocá-lo primeiro.

StorPortBuildIo

Esta regra verifica se a rotina StorPortBuildIo do miniport StorPort retornar FALSE, o SRB em questão não será passado para StartIo. (Nesses casos, o miniport driver deve concluir o SRB chamando StorPortNotification com o tipo de notificação RequestComplete a partir de StorPortBuildIo ou de outro local).

StorPortCompleteRequest

Esta regra verifica se nenhuma chamada para StorPortCompleteRequest é feita pela miniporta. O uso do StorPortCompleteRequest não é recomendado; em vez disso, as miniportas devem chamar StorPortNotification com notificationType = RequestComplete.

StorPortEnablePassive

Esta regra verifica se StorPortEnablePassiveInitialization não é chamado de nenhuma rotina de driver de miniporta StorPort diferente de HwInitialize.

StorPortFindAdapter

A rotina HwStorFindAdapter deve definir os campos MaximumTransferLength e NumberOfPhysicalBreaks na estrutura PORT_CONFIGURATION_INFORMATION . Por padrão, o valor de ambos os campos é SP_UNINITIALIZED_VALUE. Se qualquer um desses campos ainda estiver definido para SP_UNINITIALIZED_VALUE ao sair de FindAdapter, o driver falhará na regra.

StorPortNotification2

Esta regra verifica se as chamadas para StorPortNotification usam apenas tipos de notificação permitidos (ou seja, documentados).

StorPortPassiveFromHwInit

StorPortEnablePassiveInitialization não deve ser chamado no ponto de entrada de inicialização de hardware para drivers Storport se puder ser chamado diretamente a partir do ponto de entrada do controlo do adaptador de hardware.

StorPortPerfOpts

Esta regra verifica se o parâmetro PerfConfigData passado para StorPortInitializePerfOpts não é NULL.

StorPortStartIo

A espera ou a alocação de dados nunca devem ser realizadas na rotina StartIo do miniporto. O driver falhará na regra se chamar StorPortStallExecution ou outra função que envolva operações demoradas. Como o StartIo é sincronizado, essas chamadas devem ser feitas principalmente no BuildIo.

StorPortTimer

A rotina HW_TIMER deve ser definida se uma chamada para StorPortNotification(RequestTimerCall) for feita.

Para selecionar o conjunto de regras SrbProcessing

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

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

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