Sdílet prostřednictvím


Sada pravidel SrbProcessing (Storport)

Pomocí těchto pravidel ověřte, že ovladač správně zpracovává požadavky SRB.

V této části

Téma Popis

SpDuplex

Toto pravidlo ověří, že tento miniport je v celo duplexním režimu. Každý ovladač vytvořený podle modelu StorPort-miniport musí být v režimu Full Duplex . Polovina duplexní verze by se měla používat pouze při přenosu existujícího ovladače SCSI do StorPortu.

SpNoWait

Toto pravidlo ověří, že se v operaci StartIo neprovádí čekání nebo přidělení dat.

SpReturnValue

Toto pravidlo ověří, že implementace Ovladače HwStorFindAdapter a VirtualHwStorFindAdapter vrátí platný stav. Platný stav je jeden z následujících: SP_RETURN_FOUND, SP_RETURN_ERROR, SP_RETURN_BAD_CONFIG nebo SP_RETURN_NOT_FOUND.

StorPortAllocatePool

Toto pravidlo ověřuje, že se miniport nesmí pokoušet volat StorPortFreePool v uvolněné vyrovnávací paměti.

StorPortAllocatePool2

Toto pravidlo ověřuje, že se miniport nesmí pokoušet volat StorPortAllocatePool na přidělené vyrovnávací paměti bez jejího předchozího uvolnění.

StorPortBuildIo

Toto pravidlo ověří, že pokud rutina StorPort Miniport StorPortBuildIo vrátí hodnotu FALSE, příslušný SRB se do funkce StartIo nepředá. (V takových případech musí ovladač miniportu dokončit SRB voláním StorPortNotification s typem oznámení RequestComplete ze StorPortBuildIo nebo jinam).

StorPortCompleteRequest

Toto pravidlo ověřuje, že miniport neprovádí žádná volání storPortCompleteRequest . Použití StorPortCompleteRequest se nedoporučuje; Miniporty by místo toho měly volat StorPortNotification s notificationType = RequestComplete.

StorPortEnablePassive

Toto pravidlo ověřuje, že StorPortEnablePassiveInitialization není volána z žádné rutiny ovladače miniportu StorPort jiné než HwInitialize.

StorPortFindAdapter

Rutina HwStorFindAdapter musí nastavit pole MaximumTransferLength a NumberOfPhysicalBreaks ve struktuře PORT_CONFIGURATION_INFORMATION . Ve výchozím nastavení je hodnota obou těchto polí SP_UNINITIALIZED_VALUE. Pokud je některé z těchto polí stále nastaveno na SP_UNINITIALIZED_VALUE při ukončení funkce FindAdapter, ovladač nesplňuje pravidlo.

StorPortNotification2

Toto pravidlo ověřuje, že volání storPortNotification používají pouze povolené (tj. zdokumentované) typy oznámení.

StorPortPassiveFromHwInit

StorPortEnablePassiveInitialization by neměl být volán v rámci vstupního bodu inicializace HW pro ovladače Storport, pokud lze tento vstupní bod volat přímo z vstupního bodu řízení HW adaptéru.

StorPortPerfOpts

Toto pravidlo ověří, že parametr PerfConfigData předaný storPortInitializePerfOpts nemá hodnotu NULL.

StorPortStartIo

V rutině StartIo miniportu se nikdy nesmí provádět čekání nebo přidělení dat. Ovladač nedodržuje pravidlo, pokud volá StorPortStallExecution nebo jinou funkci, která zahrnuje časově náročné operace. Vzhledem k tomu, že funkce StartIo je synchronizována, měla by být tato volání většinou provedena v buildu BuildIo.

StorPortTimer

Rutina HW_TIMER musí být definována, pokud je provedeno volání StorPortNotification(RequestTimerCall).

Výběr sady pravidel SrbProcessing

  1. Vyberte projekt ovladače (.vcxProj) v aplikaci Microsoft Visual Studio. V nabídce Ovladač klepněte na Spustit statický ověřovatel ovladače....

  2. Klikněte na kartu Pravidla . V části Sady pravidel vyberte SrbProcessing.

    Pokud chcete vybrat výchozí sadu pravidel z okna příkazového řádku vývojáře sady Visual Studio, zadejte příkaz SrbProcessing.sdv s možností /check . Například:

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

    Další informace naleznete v tématu Použití statického ověřovače ovladačů k nalezení vad v ovladačích a příkazy MSBuild (Statický ověřovač ovladačů).