Freigeben über


StorPortStateChangeDetected-Funktion (storport.h)

Benachrichtigt den Storport-Porttreiber über eine Zustandsänderung für eine logische Einheitsnummer (LUN), einen Hostbusadapter (HBA) oder ein Zielgerät.

Syntax

ULONG StorPortStateChangeDetected(
  [in]           PVOID            HwDeviceExtension,
  [in]           ULONG            ChangedEntity,
  [in]           PSTOR_ADDRESS    Address,
  [in]           ULONG            Attributes,
  [in, optional] PHW_STATE_CHANGE HwStateChange,
  [in, optional] PVOID            HwStateChangeContext
);

Parameter

[in] HwDeviceExtension

Ein Zeiger auf die Hardwaregeräteerweiterung. Dies ist ein Speicherbereich pro HBA, den der Porttreiber im Namen des Miniporttreibers zuordnet 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 unmittelbar nach dem Aufruf StorPortInitializezur Verfügung. Der Porttreiber gibt diesen Speicher frei, wenn es das Gerät entfernt.

[in] ChangedEntity

Flags, die die Entitäten angeben, deren Status sich geändert hat. Dies ist ein bisschen ODER Kombination dieser Werte:

Wert Bedeutung
STATE_CHANGE_LUN
1 (0x1)
DER LUN-Zustand hat sich geändert.
STATE_CHANGE_TARGET
2 (0x2)
Der Zielstatus wurde geändert.
STATE_CHANGE_BUS
4 (0x4)
Der Bus- oder Portstatus hat sich geändert.

[in] Address

Die Adresse der Entität mit der Statusänderung. Address-Wert kann erst geändert werden, wenn der Rückruf bei HwStateChange aufgerufen wird. Wenn Adress- im Arbeitsspeicher zugeordnet ist, sollte der Speicher von der Rückrufroutine freigegeben werden.

[in] Attributes

Attribute, die der Entität zugeordnet sind. Dies ist ein bisschen ODER Kombination aus folgendem:

Wert Bedeutung
ATTRIBUTE_VM_PASSTHROUGH_LUN
LUNs sind für die Verwendung virtueller Computer reserviert.

[in, optional] HwStateChange

Ein Zeiger auf eine Rückrufroutine, die vom Miniport bereitgestellt wird. Wenn vorhanden, ruft der Storport-Treiber diese Routine auf, wenn der Treiber die Verarbeitung dieser Statusänderungsbenachrichtigung abgeschlossen hat.

[in, optional] HwStateChangeContext

Ein miniport-bereitgestellter Kontextwert, der enthalten ist, wenn die Routine in HwStateChange- aufgerufen wird.

Rückgabewert

Ein Statuswert, der das Ergebnis der Benachrichtigung angibt. Dies kann einer der folgenden Werte sein:

Rückgabecode Beschreibung
STOR_STATUS_SUCCESS
Die Statusänderungsbenachrichtigung wird für die Verarbeitung geplant.
STOR_STATUS_INVALID_PARAMETER
Der Adresstyp oder der Entitätstyp ist ungültig.
STOR_STATUS_UNSUCCESSFUL
Eine vorherige Benachrichtigung wird verarbeitet, und diese kann nicht geplant werden.

Bemerkungen

Ein erfolgreicher Aufruf von StorPortStateChangeDetected führt zu einer erneuten Aufzählung der geänderten Entität.

Nur eine Statusänderungsanforderung kann jederzeit aktiv sein. Wenn ein Miniport einen anderen StorPortStateChangeDetected Aufruf ausführen muss, sollte ein HwStateChange- Rückruf bereitgestellt und ein weiterer Aufruf an StorPortStateChangeDetected nach dem Rückruf an HwStateChange ausgeführt werden. Wenn ein Miniport mehrere Zustandsänderungen gleichzeitig angeben möchte, kann der Miniport StorPortStateChangeDetected aufrufen, wobei geänderte Entitäten in ChangedEntity- festgelegt sind, die alle aktuellen Zustandsänderungen enthält.

Wenn mehrere Flags in ChangedEntityangegeben werden, hat das Flag mit größerem Wert Vorrang vor weniger.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows 8 und höheren Versionen von Windows.
Zielplattform- Universal
Header- storport.h (include Storport.h)
IRQL- Jegliche

Siehe auch

HwStorStateChange-