Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |