Freigeben über


NdisInitializeSListHead-Makro (ndis.h)

Die NdisInitializeSListHead Funktion initialisiert den Kopf einer sequenzierten, verriegelten, 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 speicherinternen Speicher befinden muss. Die Struktur muss 16-Byte auf 64-Bit-Plattformen ausgerichtet sein.

Rückgabewert

Nichts

Bemerkungen

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

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

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

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

Wenn Sie einen Pool mit Einträgen mit fester Größe aus nicht mehrseitigem Arbeitsspeicher verwalten möchten, sollten Sie eine Nachschlageliste anstelle einer S-Liste verwenden.

Treiber, die E/A-Vorgänge wiederholen, sollten eine doubly verknüpfte interlockierte Warteschlange und die NdisInterlockedInsertHeadList, NdisInterlockedInsertTailListund NdisInterlockedRemoveHeadList Funktionen anstelle einer S-Liste verwenden.

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

Anforderungen

Anforderung Wert
mindestens unterstützte 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
Header- ndis.h (include Ndis.h)
IRQL- Beliebige Ebene

Siehe auch

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList-

NdisQueueIoWorkItem