NdisInterlockedPushEntrySList-Makro (ndis.h)
Die NdisInterlockedPushEntrySList-Funktion fügt einen Eintrag am Anfang einer sequenzierten, singly verknüpften Liste ein.
Syntax
void NdisInterlockedPushEntrySList(
SListHead,
SListEntry,
[in] Lock
);
Parameter
SListHead
Ein Zeiger auf den Kopf der bereits initialisierten sequenzierten, singlich verknüpften Liste, in die der angegebene Eintrag eingefügt werden soll.
SListEntry
Ein Zeiger auf den einzufügenden Eintrag.
[in] Lock
Ein Zeiger auf eine vom Aufrufer bereitgestellte Spinsperre, die derzeit nicht vom Aufrufer gehalten wird.
Rückgabewert
Keine
Bemerkungen
Bevor der Treiber die Funktion NdisInterlockedPushEntrySList erstmalig aufruft , muss er den Listenkopf mit dem initialisieren. NdisInitializeSListHead-Funktion .
Ein Treiber darf die angegebene Sperre nicht halten, wenn er NdisInterlockedPushEntrySList aufruft. Bei Bedarf muss ein Treiber die NdisReleaseSpinLock-Funktion aufrufen, bevor er NdisInterlockedPushEntrySList aufruft. NdisInterlockedPushEntrySList muss diese Sperre selbst abrufen, bevor ListEntry am Anfang der Liste eingefügt wird, um sicherzustellen, dass dieser Vorgang auf eine multiprozessorsichere Weise behandelt wird.
Der Aufrufer muss residenten Speicher für die Sperre bereitstellen, die mit der NdisAllocateSpinLock-Funktion initialisiert werden muss, bevor der erste Aufruf von NdisInterlocked.. SList-Routine .
Treiber, die E/A-Vorgänge wiederholen, sollten eine doppelt verknüpfte ineinandergreifende Warteschlange und die NdisInterlockedInsert/Remove verwenden. Listenfunktionen anstelle einer S-Liste.
Wenn NdisInterlockedPushEntrySList unter IRQL >= DISPATCH_LEVEL aufgerufen wird, muss der Speicher für den ListHead-Parameter und die Listeneinträge resident sein.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisInterlockedPushEntrySList (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisInterlockedPushEntrySList (NDIS 5.1)) in Windows XP. |
Zielplattform | Desktop |
Kopfzeile | ndis.h (einschließlich Ndis.h) |
IRQL | Beliebige Ebene |