Freigeben über


Storport-Überprüfung

Die Storport-Überprüfungsfunktion überwacht die Interaktion zwischen einem Storport-Miniporttreiber und dem Porttreiber. Wenn der Miniporttreiber eine Routine missbraucht, falsch auf eine Anforderung des Porttreibers antwortet oder viel Zeit in Anspruch nimmt, um auf eine Anforderung zu reagieren, wird eine Fehlerprüfung ausgeführt.

Hinweis

Die Storport-Überprüfungsfunktion ist nur in Windows Vista und höheren Versionen von Windows verfügbar.

Von der Storport-Überprüfung erkannte Verstöße

Das Storport-Überprüfungsfeature kann mehrere Missbrauchsvorgänge von Storport-Routinen erkennen. Es ist auch möglich, einige dieser Überprüfungen einzeln zu deaktivieren.

Das Storport-Überprüfungsfeature löst eine Fehlerüberprüfung 0xF1 oder eine Fehlerüberprüfung 0xC4 aus, wenn ein Storport-Miniporttreiber einen der folgenden Verstöße committet:

  • Der Miniporttreiber übergibt ein ungültiges Argument (einen NULL-Zeiger) an die StorPortInitialize-Routine .

  • Der Miniporttreiber ruft StorPortStallExecution auf und gibt eine Verzögerung von mehr als 0,1 Sekunden an, wodurch der Prozessor übermäßig lange angehalten wird.

  • StorPortFreeDeviceBase kann nur über die HwStorFindAdapter-Routine des Miniporttreibers aufgerufen werden.

  • StorPortGetUncachedExtension kann nur aus der HwStorFindAdapter-Routine des Miniporttreibers aufgerufen werden und kann nur für einen Bus-master-Adapter aufgerufen werden. Ein Miniport muss die SrbExtensionSize der HW_INITIALIZATION_DATA -Struktur (Storport) festlegen, bevor StorPortGetUncachedExtension aufgerufen wird.

  • Die StorPortGetDeviceBase-Routine unterstützt nur die Adressen, die dem Treiber vom PnP-Manager (System Plug & Play) zugewiesen wurden.

  • Der Miniporttreiber übergibt eine ungültige virtuelle Adresse an eine der XXX-RoutinenStorPortReadoderStorPortWrite (z. B. StorPortReadRegisterUchar oder StorPortWritePortBufferUlong). Dies bedeutet in der Regel, dass die angegebene Adresse nicht dem allgemeinen Pufferbereich zugeordnet ist. Das angegebene Register oder der angegebene Port muss sich im zugeordneten Speicherbereich befinden, der von der StorPortGetDeviceBase-Routine zurückgegeben wird. Diese Überprüfung wird nur auf x86-basierten Systemen unterstützt.

Eine Liste der Fehlerüberprüfungsparameter, die von Storport Verification verwendet werden, finden Sie unter Fehlerüberprüfung 0xF1 (SCSI_VERIFIER_DETECTED_VIOLATION). Zusätzlich zur 0xF1 der Fehlerüberprüfung verwendet storport Verification auch die 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION).

Hinweis

Die Fehlerüberprüfung 0xF1 wird sowohl für die SCSI-Überprüfung als auch für die Storport-Überprüfung verwendet.

Aktivieren der Storport-Überprüfungsoption

Das Verfahren zum Aktivieren der Storport-Überprüfungsoption unterscheidet sich von den Verfahren zum Aktivieren anderer Treiberüberprüfungsoptionen.

  1. Starten Sie mithilfe des Treiberüberprüfungs-Managers oder der Verifier.exe Befehlszeile eine Überprüfung des Miniporttreibers. Da die Storport-Überprüfung nicht als Option verfügbar ist, müssen Sie mindestens eine andere Option für die Treiberüberprüfung auswählen. Weitere Informationen finden Sie unter Auswählen von Treiberüberprüfungsoptionen und Auswählen der zu überprüfenden Treiber.

  2. Öffnen Sie die Registrierung mit regedit.exe. Fügen Sie im schlüsselHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort einen Unterschlüssel namens Verifier hinzu. Wenn der StorPort-Schlüssel nicht vorhanden ist, müssen Sie ihn erstellen. Fügen Sie im HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\STORPort\Verifier Schlüssel einen REG_DWORD Eintrag namens VerifyLevel hinzu. Der diesem Eintrag zugewiesene Wert bestimmt, welche Storport-Überprüfungstests aktiv sind. Der Wert 0x1 gibt die maximale Überprüfung.

  3. Starten Sie den Computer neu.

Wenn der VerifyLevel-Wert nicht vorhanden ist oder gleich 0xFFFFFFFF ist, wird Storport Verification deaktiviert.

Aktivieren ohne Neustart

Im Allgemeinen können Sie die Storport-Überprüfung nicht aktivieren oder deaktivieren, ohne den Computer unter einem Windows-Betriebssystem neu zu starten (neu zu starten). Der StorPort.sys Treiber liest den Registrierungseintrag VerifyLevel nur, wenn er geladen wird, was in der Regel zur Startzeit erfolgt. Wenn der StorPort.sys Treiber jedoch nicht geladen wird, wenn Sie den Registrierungseintrag hinzufügen, oder wenn er entladen und erneut geladen wird, können Sie die Storport-Überprüfung unter Windows Vista und höheren Versionen von Windows aktivieren, ohne den Computer neu zu starten.