NdisInitializeListHead-Makro (ndis.h)
Die NdisInitializeListHead-Funktion initialisiert eine doubly verknüpfte, vom Treiber verwaltete Warteschlange.
Syntax
void NdisInitializeListHead(
[in] _ListHead
);
Parameter
[in] _ListHead
Ein Zeiger auf den vom Treiber zugewiesenen nicht seitengebundenen Speicher für den Kopf der verriegelten Warteschlange oder Liste.
Rückgabewert
Nichts
Bemerkungen
NdisInitializeListHead- kann von einer MiniportInitializeEx--Funktion oder von der DriverEntry-Routine eines Protokolltreibers aufgerufen werden, wenn der Treiber intern Anforderungen anfordert. Miniporttreiber richten jedoch selten interne Warteschlangen ein, da die NDIS-Bibliothek Anforderungen und Pakete serialisiert, die an Miniporttreiber gesendet werden.
Jeder NDIS-Treiber, der eine interne Warteschlange verwaltet, ist für die Synchronisierung der Zugriffe von Treiberfunktionen auf in die Warteschlange eingereihte Einträge verantwortlich. Die NdisInterlockedXxxList Funktionen stellen sicher, dass nur eine Treiberfunktion zu einem bestimmten Zeitpunkt auf in die Warteschlange eingereihte Einträge zugreifen kann, auch wenn der Treiber auf einem Multiprozessorcomputer ausgeführt wird, da die Warteschlange durch eine vom Aufrufer bereitgestellte Drehsperre geschützt ist.
Für eine verriegelte Warteschlange muss der Treiber auch nicht ausgelagerten Speicher für eine Drehsperre bereitstellen. Sie muss die Drehsperre mit der funktion NdisAllocateSpinLock initialisieren, bevor sie einen Zeiger auf diese Drehsperre an eine der NdisInterlockedXxxList-Funktionen übergeben.
Aufrufer von NdisInitializeListHead- können bei jedem IRQL ausgeführt werden. Wenn NdisInitializeListHead bei IRQL aufgerufen wird>= DISPATCH_LEVEL muss der Speicher für ListHead- vorhanden sein.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisInitializeListHead (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisInitializeListHead (NDIS 5.1)) in Windows XP. |
Zielplattform- | Desktop |
Header- | ndis.h (include Ndis.h) |
IRQL- | Beliebige Ebene (siehe Abschnitt "Hinweise") |
Siehe auch
DriverEntry von NDIS-Protokolltreibern
NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList