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) |