Freigeben über


StorPortGetLogicalUnit-Funktion (storport.h)

Die StorPortGetLogicalUnit-Routine gibt einen Zeiger auf den Speicherbereich des Miniporttreibers pro logischer Einheit zurück.

Syntax

STORPORT_API PVOID StorPortGetLogicalUnit(
  [in] PVOID HwDeviceExtension,
  [in] UCHAR PathId,
  [in] UCHAR TargetId,
  [in] UCHAR Lun
);

Parameter

[in] HwDeviceExtension

Zeiger auf die Hardwaregeräteerweiterung. Hierbei handelt es sich um einen HBA-Speicherbereich, den der Porttreiber im Auftrag des Miniporttreibers ordnet und initialisiert. Miniporttreiber speichern normalerweise HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand des HBA und die zugeordneten Zugriffsbereiche für den HBA. Dieser Bereich steht dem Miniporttreiber zur Verfügung, sobald die HwStorFindAdapter-Routine des Miniporttreibers aufgerufen wird. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt.

[in] PathId

Gibt den SCSI-Bus an.

[in] TargetId

Identifiziert den Zielcontroller oder das Zielgerät auf dem Bus.

[in] Lun

Gibt die LU-Nummer (Logical Unit) des Zielgeräts an.

Rückgabewert

StorPortGetLogicalUnit gibt einen Zeiger auf den Speicherbereich des Miniporttreibers für die angeforderte logische Einheit zurück. Wenn die logische Einheit nicht vorhanden ist, gibt sie NULL zurück.

Hinweise

StorPortGetLogicalUnit ist irrelevant, wenn die DriverEntry-Routine des Miniporttreibers null für luExtensionSize im HW_INITIALIZATION_DATA angegeben hat, wenn storPortInitialize aufgerufen wurde. Andernfalls weist der betriebssystemspezifische Porttreiber eine Reihe von LU-Erweiterungen der angegebenen Größe für den zu verwendenden Miniporttreiber zu und initialisiert sie mit Nullen.

Pro LU-Speicher kann verwendet werden, um Daten zu speichern, die für ein bestimmtes Peripheriegerät relevant sind, z. B. gespeicherte Datenzeiger. Um auf diesen Bereich zuzugreifen, ruft der Miniporttreiber StorPortGetLogicalUnit auf, wenn der Treiber Informationen über den Zustand oder den aktuellen Betrieb für ein bestimmtes Peripheriegerät behält.

Der betriebssystemspezifische Porttreiber kann eine logische Einheit als nicht vorhanden betrachten, wenn keine aktive Anforderung für diese logische Einheit vorhanden ist und das Gerät nie erfolgreich ausgewählt wurde.

Hinweis

Wenn der Miniporttreiber StorPortGetLogicalUnit bei IRQL = DISPATCH_LEVEL aufruft, ruft die Funktion die Interruptsperre ab. Das aufrufen von StorPortGetLogicalUnit zu häufig auf dieser IRQL-Ebene wirkt sich auf die Leistung und Skalierbarkeit des Miniporttreibers aus.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows XP und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header storport.h (einschließlich Storport.h)
Bibliothek Storport.lib

Weitere Informationen

HW_INITIALIZATION_DATA

StorPortInitialize