Freigeben über


SrbProcessing-Regelsatz (Storport)

Verwenden Sie diese Regeln, um zu überprüfen, ob Der Treiber SRB-Anforderungen ordnungsgemäß verarbeitet.

In diesem Abschnitt

Thema Beschreibung

SpDuplex

Diese Regel überprüft, ob sich dieser Miniport im Vollduplexmodus befindet. Jeder treiber, der gemäß dem StorPort-miniport-Modell erstellt wurde, muss sich im Vollduplexmodus befinden. Half Duplex sollte nur beim Portieren eines vorhandenen SCSI-Treibers zu StorPort verwendet werden.

SpNoWait

Diese Regel überprüft, ob Wartezeiten oder Datenzuweisungen nicht innerhalb von StartIo ausgeführt werden.

SpReturnValue

Diese Regel überprüft, ob die Implementierungen des Treibers von HwStorFindAdapter und VirtualHwStorFindAdapter einen gültigen Status zurückgeben. Ein gültiger Status ist einer der folgenden: SP_RETURN_FOUND, SP_RETURN_ERROR, SP_RETURN_BAD_CONFIG oder SP_RETURN_NOT_FOUND.

StorPortAllocatePool

Diese Regel überprüft, ob der Miniport nicht versuchen darf, StorPortFreePool für einen Deallocated-Puffer aufzurufen.

StorPortAllocatePool2

Diese Regel überprüft, ob der Miniport nicht versuchen darf, StorPortAllocatePool für einen zugeordneten Puffer aufzurufen, ohne sie zuerst zuzuordnen.

StorPortBuildIo

Diese Regel überprüft, ob die StorPort Miniport StorPort Miniport's StorPortBuildIo-Routine FALSE zurückgibt, der fragliche SRB nicht an StartIo übergeben wird. (In solchen Fällen muss der Miniporttreiber den SRB durch Aufrufen abschließenStorPortNotification mit einem Benachrichtigungstyp von RequestComplete von StorPortBuildIo oder an einem anderen Ort).

StorPortCompleteRequest

Diese Regel überprüft, ob vom Miniport keine Aufrufe an StorPortCompleteRequest vorgenommen werden. Die Verwendung von StorPortCompleteRequest wird nicht empfohlen. Miniports sollten stattdessen StorPortNotification mit notificationType = RequestComplete aufrufen.

StorPortEnablePassive

Diese Regel überprüft, ob StorPortEnablePassiveInitialization nicht von einer anderen StorPort-Miniporttreiberroutine als HwInitialize aufgerufen wird.

StorPortFindAdapter

Die HwStorFindAdapter-Routine muss die Felder "MaximumTransferLength " und " NumberOfPhysicalBreaks " in der PORT_CONFIGURATION_INFORMATION-Struktur festlegen. Standardmäßig ist der Wert beider Felder SP_UNINITIALIZED_VALUE. Wenn eines dieser Felder beim Beenden von FindAdapter weiterhin auf SP_UNINITIALIZED_VALUE festgelegt ist, schlägt der Treiber die Regel fehl.

StorPortNotification2

Diese Regel überprüft, ob Aufrufe von StorPortNotification nur zulässige (d. h. dokumentierte) Benachrichtigungstypen verwenden.

StorPortPassiveFromHwInit

StorPortEnablePassiveInitialization sollte nicht innerhalb des HW Initialization-Einstiegspunkts für Storport-Treiber aufgerufen werden, wenn der Einstiegspunkt für die HW-Initialisierung direkt vom Einstiegspunkt HW Adapter Control aufgerufen werden kann.

StorPortPerfOpts

Diese Regel überprüft, ob der PerfConfigData-Parameter, der an StorPortInitializePerfOpts übergeben wird, nicht NULL ist.

StorPortStartIo

Waits or data allocation must never be perform in the miniport's StartIo routine. Der Treiber schlägt die Regel fehl, wenn storPortStallExecution oder eine andere Funktion aufgerufen wird, die zeitaufwendige Vorgänge umfasst. Da StartIo synchronisiert wird, sollten diese Aufrufe hauptsächlich in BuildIo erfolgen.

StorPortTimer

Die HW_TIMER Routine muss definiert werden, wenn ein Aufruf von StorPortNotification(RequestTimerCall) erfolgt.

So wählen Sie den Regelsatz "SrbProcessing" aus

  1. Wählen Sie Ihr Treiberprojekt (VCXProj) in Microsoft Visual Studio aus. Klicken Sie im Menü "Treiber" auf "Statische Treiberüberprüfung starten".

  2. Klicken Sie auf die Registerkarte "Regeln ". Wählen Sie unter "Regelsätze" die Option "SrbProcessing" aus.

    Um den Standardregelsatz aus einem Visual Studio-Entwickler-Eingabeaufforderungsfenster auszuwählen, geben Sie SrbProcessing.sdv mit der Option "/check " an. Zum Beispiel:

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

    Weitere Informationen finden Sie unter Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).For more information, see Using Static Driver Verifier commands (MSBuild) to Find Defects in Drivers and Static Driver Verifier commands.