Condividi tramite


Set di regole SrbProcessing (Storport)

Usare queste regole per verificare che il driver elabori correttamente le richieste SRB.

In questa sezione

Argomento Descrizione

SpDuplex

Questa regola verifica che questo miniport sia in modalità Full Duplex . Qualsiasi driver creato in base al modello StorPort-miniport deve essere in modalità Full Duplex . Half Duplex deve essere usato solo quando si esegue la conversione di un driver SCSI esistente in StorPort.

SpNoWait

Questa regola verifica che le attese o l'allocazione dei dati non vengano eseguite all'interno di StartIo.

SpReturnValue

Questa regola verifica che le implementazioni del driver di HwStorFindAdapter e VirtualHwStorFindAdapter restituiscono uno stato valido. Uno stato valido è uno dei seguenti: SP_RETURN_FOUND, SP_RETURN_ERROR, SP_RETURN_BAD_CONFIG o SP_RETURN_NOT_FOUND.

StorPortAllocatePool

Questa regola verifica che il miniport non debba tentare di chiamare StorPortFreePool in un buffer deallocato.

StorPortAllocatePool2

Questa regola verifica che il miniport non debba tentare di chiamare StorPortAllocatePool in un buffer allocato senza deallocarlo per primo.

StorPortBuildIo

Questa regola verifica che se la routine StorPort miniport StorPortBuildIo restituisce FALSE, SRB in questione non viene passato a StartIo. In questi casi, il driver miniport deve completare lo SRB chiamando StorPortNotification con un tipo di notifica di RequestComplete da StorPortBuildIo o da un altro punto.

StorPortCompleteRequest

Questa regola verifica che nessuna chiamata a StorPortCompleteRequest venga effettuata dal miniport. L'utilizzo di StorPortCompleteRequest non è consigliato; i miniport devono invece chiamare StorPortNotification con notificationType = RequestComplete.

StorPortEnablePassive

Questa regola verifica che StorPortEnablePassiveInitialization non venga chiamato da alcuna routine del driver miniport StorPort diversa da HwInitialize.

StorPortFindAdapter

La routine HwStorFindAdapter deve impostare i campi MaximumTransferLength e NumberOfPhysicalBreaks nella struttura PORT_CONFIGURATION_INFORMATION . Per impostazione predefinita, il valore di entrambi questi campi è SP_UNINITIALIZED_VALUE. Se uno di questi campi è ancora impostato su SP_UNINITIALIZED_VALUE all'uscita da FindAdapter, il driver non supera la regola.

StorPortNotification2

Questa regola verifica che le chiamate a StorPortNotification usino solo i tipi di notifica consentiti (ad esempio documentati).

StorPortPassiveFromHwInit

StorPortEnablePassiveInitialization non deve essere chiamato all'interno del punto di ingresso dell'inizializzazione hardware per i driver Storport se il punto di ingresso dell'inizializzazione hardware può essere chiamato direttamente dal punto di ingresso del controllo dell'adattatore hardware.

StorPortPerfOpts

Questa regola verifica che il parametro PerfConfigData passato a StorPortInitializePerfOpts non sia NULL.

StorPortStartIo

Le attese o l'allocazione dei dati non devono mai essere eseguite nella routine StartIo del miniport. Il driver non rispetta la regola se chiama StorPortStallExecution o un'altra funzione che comporta operazioni dispendiose in termini di tempo. Poiché StartIo è sincronizzato , queste chiamate devono essere eseguite principalmente in BuildIo.

StorPortTimer

La routine HW_TIMER deve essere definita se viene effettuata una chiamata a StorPortNotification(RequestTimerCall).

Per selezionare il set di regole SrbProcessing

  1. Selezionare il progetto driver (.vcxProj) in Microsoft Visual Studio. Dal menu Driver fare clic su Launch Static Driver Verifier...(Avvia verifica driver statico...).

  2. Fare clic sulla scheda Regole . In Set di regole selezionare SrbProcessing.

    Per selezionare il set di regole predefinito da una finestra del prompt dei comandi per sviluppatori di Visual Studio, specificare SrbProcessing.sdv con l'opzione /check . Per esempio:

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

    Per altre informazioni, vedere Uso di Static Driver Verifier per individuare difetti nei driver e Comandi di Static Driver Verifier (MSBuild).