Freigeben über


NdisInitializeSListHead-Makro (ndis.h)

Die NdisInitializeSListHead-Funktion initialisiert den Kopf einer sequenzierten, ineinandergreifenden, singlich verknüpften Liste.

Syntax

void NdisInitializeSListHead(
  [in]  SListHead
);

Parameter

[in] SListHead

Ein Zeiger auf den vom Aufrufer bereitgestellten Listenkopf, der initialisiert werden soll, der sich im residenten Arbeitsspeicher befinden muss. Die Struktur muss 16-Byte auf 64-Bit-Plattformen ausgerichtet sein.

Rückgabewert

Keine

Bemerkungen

NdisInitializeSListHead initialisiert den undurchsichtigen Listenkopf bei SListHead null und legt den Ersten-Einstiegszeiger auf NULL fest.

Die Sequenznummer in einer S-Liste wird jedes Mal erhöht, wenn ein Eintrag in die Liste eingefügt oder daraus entfernt wird.

Alle Einträge in einer S-Liste müssen nicht auspaget sein.

Jeder Treiber, der eine S-Liste verwendet, muss eine Drehsperre für die NdisInterlockedPushEntrySList und NdisInterlockedPopEntrySList-Funktionen . Vor dem ersten Aufruf einer dieser Funktionen muss der Treiber die Spinsperre mit der Funktion NdisAllocateSpinLock initialisieren. Um Deadlocks zu verhindern, darf der Treiber diese Drehsperre nicht halten , wenn er nachfolgende Aufrufe von NdisInterlockedPushEntrySList und NdisInterlockedPopEntrySList durchführt.

Um einen Pool mit Einträgen fester Größe aus nicht auslagerten Arbeitsspeicher zu verwalten, sollten Sie eine Suchliste anstelle einer S-Liste verwenden.

Treiber, die E/A-Vorgänge wiederholen, sollten eine doppelt verknüpfte ineinandergreifende Warteschlange und die Funktionen NdisInterlockedInsertHeadList, NdisInterlockedInsertTailList und NdisInterlockedRemoveHeadList anstelle einer S-List verwenden.

Wenn NdisInitializeSListHead unter IRQL >= DISPATCH_LEVEL aufgerufen wird, muss der Speicher für den SListHead-Parameter resident sein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisInitializeSListHead (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisInitializeSListHead (NDIS 5.1)) in Windows XP.
Zielplattform Desktop
Kopfzeile ndis.h (include Ndis.h)
IRQL Beliebige Ebene

Weitere Informationen

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem