Freigeben über


StorPortInterlockedPopEntrySList-Funktion (storport.h)

Entfernt ein Element von der Vorderseite einer von Storport verwalteten, singly verknüpften Liste. Der Zugriff auf die Liste wird auf einem Multiprozessorsystem synchronisiert.

Syntax

Syntax

ULONG StorPortInterlockedPopEntrySList(
  [in]      PVOID              HwDeviceExtension,
  [in, out] PSTOR_SLIST_HEADER SListHead,
  [out]     PSTOR_SLIST_ENTRY  *Result
);

Parameter

[in] HwDeviceExtension

Ein Zeiger auf die Hardwaregeräteerweiterung für den Host Bus Adapter (HBA).

[in, out] SListHead

Ein Zeiger auf eine STOR_SLIST_HEADER-Struktur , die den Kopf einer einfach verknüpften Liste darstellt. Diese Struktur gilt als undurchsichtig und kann nur vom Storport-Treiber verwendet werden.

[out] Result

Ein Zeiger auf einen Listeneintragszeiger. Der zurückgegebene Wert ist ein Zeiger auf das Element, das von der Anfang der Liste entfernt wurde. Wenn die Liste leer ist, wird NULL im Wert zurückgegeben, auf den von Result verwiesen wird.

Rückgabewert

StorPortInterlockedPopEntrySList gibt einen der folgenden status-Codes zurück:

Rückgabecode Beschreibung
STOR_STATUS_NOT_IMPLEMENTED
Diese Funktion ist auf dem aktiven Betriebssystem nicht implementiert.
STOR_STATUS_SUCCESS
Das Listenelement wurde erfolgreich aus der Liste entfernt oder ist bereits leer.
STOR_STATUS_INVALID_PARAMETER
Ein Zeiger in SListHead oder Result ist NULL.

Hinweise

StorPortInterlockedPopEntrySList gibt auch STATUS_SUCCESS zurück, wenn sich keine Einträge in der Liste befinden. Der von Result referenzierte Zeigerwert muss auf NULL ausgewertet werden, um zu überprüfen, ob kein Eintrag zurückgegeben wurde.

StorPortInterlockedPopEntrySList gibt den zurückgegebenen Listeneintrag nicht frei. Jeder Deallocation-Code für die Liste muss darauf achten, dass der Speicher freigegeben wird, der für einen Listeneintrag an der Position zugewiesen wurde, die vor der Anpassung für die Begrenzungsausrichtung abgerufen wurde. Der wert, auf den von Result verwiesen wird, ist möglicherweise nicht der ursprüngliche Pufferspeicherort, der aufgrund einer Anpassung für MEMORY_ALLOCATION_ALIGNMENT zugewiesen wurde. Weitere Informationen finden Sie unter Hinweise zu StorPortInterlockedPushEntrySList.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Zielplattform Universell
Header storport.h (einschließlich Storport.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

StorPortInitializeSListHead

StorPortInterlockedFlushSList

StorPortInterlockedPushEntrySList

StorPortQueryDepthSList