Freigeben über


StorPortInterlockedInsertHeadList-Funktion (storport.h)

Die StorPortInterlockedInsertHeadList-Routine fügt einen Eintrag am Anfang einer doppelt verknüpften Liste von STOR_LIST_ENTRY Strukturen atomar ein.

Syntax

ULONG StorPortInterlockedInsertHeadList(
  [in]      PVOID            HwDeviceExtension,
  [in, out] PSTOR_LIST_ENTRY ListHead,
  [in, out] PSTOR_LIST_ENTRY ListEntry,
  [in, out] PSTOR_LIST_ENTRY *Result,
  [in, out] PSTOR_KSPIN_LOCK Lock
);

Parameter

[in] HwDeviceExtension

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

[in, out] ListHead

Zeiger auf die STOR_LIST_ENTRY Struktur, die den Kopf der Liste darstellt.

[in, out] ListEntry

Zeiger auf eine STOR_LIST_ENTRY-Struktur , die den Eintrag darstellt, der in die Liste eingefügt werden soll.

[in, out] Result

Zeiger auf eine STOR_LIST_ENTRY Struktur, die den ersten Eintrag der Liste darstellt, bevor der neue Eintrag eingefügt wurde.

[in, out] Lock

Ein Zeiger auf eine STOR_KSPIN_LOCK Struktur, die als Drehsperre dient, die zum Synchronisieren des Zugriffs auf die Liste verwendet wird. Der Speicher für die Drehsperre muss resident sein und durch Aufrufen von StorPortInitializeSpinLock initialisiert worden sein.

Sie müssen diese Spin-Sperre nur mit den StorPortInterlockedXxxList-Routinen verwenden.

Rückgabewert

StorPortInterlockedInsertHeadList gibt einen status Code zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STOR_STATUS_NOT_IMPLEMENTED Diese Funktion ist auf dem aktiven Betriebssystem nicht implementiert.
STOR_STATUS_SUCCESS Die Listenelemente wurden erfolgreich entfernt, oder die Liste ist bereits leer.
STOR_STATUS_INVALID_PARAMETER Ein Zeiger in ListHead oder Result ist NULL.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header storport.h (Storport.h einschließen)

Weitere Informationen

InitializeListHead

InsertHeadList

StorPortInitializeSpinLock

StorPortInterlockedInsertTailList

StorPortInterlockedRemoveHeadList