NdisInitializeListHead-Makro (ndis.h)

Die NdisInitializeListHead-Funktion initialisiert eine doppelt verknüpfte, vom Treiber verwaltete Warteschlange.

Syntax

void NdisInitializeListHead(
  [in]  _ListHead
);

Parameter

[in] _ListHead

Ein Zeiger auf den vom Treiber zugewiesenen nicht ausgelagerten Speicher für den Kopf der ineinander verriegelten Warteschlange oder Liste.

Rückgabewert

Keine

Bemerkungen

NdisInitializeListHead kann von einer MiniportInitializeEx-Funktion oder von der DriverEntry-Routine eines Protokolltreibers aufgerufen werden, wenn der Treiber Anforderungen intern in die Warteschlange stellt. 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 Warteschlangeneinträge verantwortlich. Die NdisInterlockedXxxList-Funktionen stellen sicher, dass nur eine Treiberfunktion jederzeit auf Einträge in der Warteschlange zugreifen kann, auch wenn der Treiber auf einem Multiprozessorcomputer ausgeführt wird, da die Warteschlange durch eine vom Aufrufer bereitgestellte Spinsperre geschützt ist.

Für eine ineinander verriegelte Warteschlange muss der Treiber auch nicht ausgelagerten Speicher für eine Spinsperre bereitstellen. Es muss die Spinsperre mit der NdisAllocateSpinLock-Funktion initialisieren, bevor ein Zeiger auf diese Spinsperre an eine der NdisInterlockedXxxList-Funktionen übergeben wird .

Aufrufer von NdisInitializeListHead können in jedem IRQL ausgeführt werden. Wenn NdisInitializeListHead unter IRQL >= DISPATCH_LEVEL aufgerufen wird, muss der Speicher für ListHead resident sein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (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
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL Beliebige Ebene (siehe Abschnitt Hinweise)

Weitere Informationen

DriverEntry von NDIS-Protokolltreibern

MiniportInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList