SrbProcessing-Regelsatz (Storport)
Verwenden Sie diese Regeln, um zu überprüfen, ob Der Treiber SRB-Anforderungen ordnungsgemäß verarbeitet.
In diesem Abschnitt
Thema | Beschreibung |
---|---|
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. |
|
Diese Regel überprüft, ob Wartezeiten oder Datenzuweisungen nicht innerhalb von StartIo ausgeführt werden. |
|
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. |
|
Diese Regel überprüft, ob der Miniport nicht versuchen darf, StorPortFreePool für einen Deallocated-Puffer aufzurufen. |
|
Diese Regel überprüft, ob der Miniport nicht versuchen darf, StorPortAllocatePool für einen zugeordneten Puffer aufzurufen, ohne sie zuerst zuzuordnen. |
|
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). |
|
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. |
|
Diese Regel überprüft, ob StorPortEnablePassiveInitialization nicht von einer anderen StorPort-Miniporttreiberroutine als HwInitialize aufgerufen wird. |
|
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. |
|
Diese Regel überprüft, ob Aufrufe von StorPortNotification nur zulässige (d. h. dokumentierte) Benachrichtigungstypen verwenden. |
|
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. |
|
Diese Regel überprüft, ob der PerfConfigData-Parameter, der an StorPortInitializePerfOpts übergeben wird, nicht NULL ist. |
|
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. |
|
Die HW_TIMER Routine muss definiert werden, wenn ein Aufruf von StorPortNotification(RequestTimerCall) erfolgt. |
So wählen Sie den Regelsatz "SrbProcessing" aus
Wählen Sie Ihr Treiberprojekt (VCXProj) in Microsoft Visual Studio aus. Klicken Sie im Menü "Treiber" auf "Statische Treiberüberprüfung starten".
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.