Freigeben über


StorPortInterlockedRemoveHeadList-Funktion (storport.h)

Die StorPortInterlockedRemoveHeadList-Routine entfernt einen Eintrag vom Anfang einer doubly verknüpften Liste von STOR_LIST_ENTRY Strukturen.

Syntax

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

Parameter

[in] HwDeviceExtension

Ein Zeiger auf die Hardwaregeräteerweiterung für den Hostbusadapter (HBA).

[in, out] ListHead

Zeigen Sie auf die STOR_LIST_ENTRY Struktur, die den Kopf der Liste darstellt.

[in, out] Result

Zeigen Sie auf eine STOR_LIST_ENTRY Struktur, die den Eintrag darstellt, der aus der Liste entfernt wurde. Wenn die Liste leer war, gibt die Routine NULL-zurück.

[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 Drehungssperre muss resident sein und muss durch Aufrufen von StorPortInitializeSpinLockinitialisiert werden.

Sie müssen diese Drehsperre nur mit den StorPortInterlockedXxxList Routinen verwenden.

Rückgabewert

StorPortInterlockedRemoveHeadList gibt einen der folgenden Statuscodes zurück:

Rückgabecode Beschreibung
STOR_STATUS_NOT_IMPLEMENTED Diese Funktion ist nicht auf dem aktiven Betriebssystem 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- Universal
Header- storport.h (include Storport.h)

Siehe auch

InitializeListHead-

InsertHeadList-

StorPortInitializeSpinLock

StorPortInterlockedInsertHeadList

StorPortInterlockedInsertTailList