Freigeben über


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

Weitere Informationen

NdisAllocateSpinLock

NdisFreeSpinLock

NdisInitializeSListHead

NdisInterlockedPopEntrySList

NdisQueryDepthSList

NdisReleaseSpinLock