Freigeben über


StorPortGetLogicalUnit-Funktion (storport.h)

Die StorPortGetLogicalUnit Routine gibt einen Zeiger auf den Speicherbereich des Miniporttreibers pro Logische 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. Dies ist ein HBA-Speicherbereich, den der Porttreiber im Namen des Miniporttreibers zuweist und initialisiert. Miniporttreiber speichern in der Regel HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand der HBA und die zugeordneten Zugriffsbereiche für die HBA. Dieser Bereich steht dem Miniporttreiber zur Verfügung, sobald die HwStorFindAdapter Routine des Miniporttreibers aufgerufen wird. Der Porttreiber gibt diesen Speicher frei, wenn es das Gerät entfernt.

[in] PathId

Identifiziert den SCSI-Bus.

[in] TargetId

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

[in] Lun

Identifies the logical unit (LU) number of the target device.

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, wird NULL-zurückgegeben.

Bemerkungen

StorPortGetLogicalUnit ist irrelevant, wenn die DriverEntry-Routine des Miniporttreibers für die LuExtensionSize- im HW_INITIALIZATION_DATA angegeben ist, wenn StorPortInitializeaufgerufen wird. Andernfalls wird vom betriebssystemspezifischen Porttreiber eine Reihe von LU-Erweiterungen der angegebenen Größe für den zu verwendenden Miniporttreiber zugewiesen und initialisiert.

Per-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 erhä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.

Anmerkung

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows XP und höheren Versionen von Windows-Betriebssystemen.
Zielplattform- Universal
Header- storport.h (include Storport.h)
Library Storport.lib

Siehe auch

HW_INITIALIZATION_DATA

StorPortInitialize