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 |