Freigeben über


StorPortStateChangeDetected-Funktion (storport.h)

Benachrichtigt den Storport-Porttreiber über eine Zustandsänderung für eine LUN (Logical Unit Number), einen HBA-Port (Host Bus Adapter) 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. Hierbei handelt es sich um einen HBA-Speicherbereich, den der Porttreiber im Namen 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 unmittelbar nach dem Aufruf des Miniporttreibers StorPortInitialize zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt.

[in] ChangedEntity

Flags, die die Entitäten angeben, deren Zustand sich geändert hat. Dies ist eine bitweise OR-Kombination der folgenden Werte:

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

[in] Address

Die Adresse der Entität mit der Statusänderung. Der Adresswert kann sich erst ändern, wenn der Rückruf bei HwStateChange aufgerufen wird. Wenn Address im Arbeitsspeicher zugeordnet ist, sollte der Arbeitsspeicher durch die Rückrufroutine freigegeben werden.

[in] Attributes

Attribute, die der Entität zugeordnet sind. Dies ist eine bitweise OR-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 vom Miniport bereitgestellte Rückrufroutine. Falls vorhanden, ruft der Storport-Treiber diese Routine auf, wenn der Treiber die Verarbeitung dieser Statusänderungsbenachrichtigung abgeschlossen hat.

[in, optional] HwStateChangeContext

Ein vom Miniport bereitgestellter Kontextwert, der enthalten ist, wenn der Routinesatz in HwStateChange aufgerufen wird.

Rückgabewert

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

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

Hinweise

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

Nur eine Zustandsänderungsanforderung kann jederzeit aktiv sein. Wenn ein Miniport einen weiteren StorPortStateChangeDetected-Aufruf ausführen muss, sollte er einen HwStateChange-Rückruf bereitstellen und einen weiteren Aufruf von StorPortStateChangeDetected ausführen, nachdem der Rückruf von HwStateChange erfolgt ist. Wenn ein Miniport mehrere Zustandsänderungen gleichzeitig angeben möchte, kann der Miniport StorPortStateChangeDetected einmal aufrufen, wobei geänderte Entitäten in ChangedEntity festgelegt sind, die alle aktuellen Zustandsänderungen enthält.

Wenn in ChangedEntity mehrere Flags angegeben werden, hat das Flag mit größerem Wert Vorrang vor kleineren Flags.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 8 und höheren Versionen von Windows.
Zielplattform Universell
Header storport.h (einschließlich Storport.h)
IRQL Any

Weitere Informationen

HwStorStateChange