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 di StorPortBuildIo restituisce FAL edizione Standard, la SRB in questione non viene passata a StartIo. (In questi casi, il driver miniport deve completare la SRB chiamando StorPortNotification con un tipo di notifica RequestComplete da StorPortBuildIo o in un altro posto.

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 riesce 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 di inizializzazione HW per i driver Storport se il punto di ingresso HW Initialization può essere chiamato direttamente dal punto di ingresso del controllo dell'adapter HW.

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 riesce 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 (con estensione 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 . Ad esempio:

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

    Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).