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 |
---|---|
|
DER LUN-Status wurde geändert. |
|
Der Zielzustand wurde geändert. |
|
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 |
---|---|
|
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 |
---|---|
|
Die Statusänderungsbenachrichtigung ist für die Verarbeitung geplant. |
|
Der Adress- oder Entitätstyp ist ungültig. |
|
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 |