Partager via


Macro NdisInitializeListHead (ndis.h)

La fonction NdisInitializeListHead initialise une file d’attente doublement liée, gérée par le pilote.

Syntaxe

void NdisInitializeListHead(
  [in]  _ListHead
);

Paramètres

[in] _ListHead

Pointeur vers le stockage non paginé alloué par le pilote pour l’en-tête de la file d’attente ou de la liste verrouillée.

Valeur de retour

None

Remarques

NdisInitializeListHead peut être appelé à partir d’une fonction MiniportInitializeEx ou à partir d’une routine DriverEntry d’un pilote de protocole si le pilote met en file d’attente les requêtes en interne. Toutefois, les pilotes miniport configurent rarement des files d’attente internes, car la bibliothèque NDIS sérialise les requêtes et les paquets envoyés aux pilotes miniport.

Tout pilote NDIS qui gère une file d’attente interne est responsable de la synchronisation des accès des fonctions du pilote aux entrées en file d’attente. Les fonctions NdisInterlockedXxxList garantissent qu’une seule fonction de pilote peut accéder aux entrées en file d’attente à tout moment, même si le pilote s’exécute sur un ordinateur multiprocesseur, car la file d’attente est protégée par un verrou de rotation fourni par l’appelant.

Pour une file d’attente verrouillée, le pilote doit également fournir un stockage non paginé pour un verrou de rotation. Il doit initialiser le verrou de rotation avec la fonction NdisAllocateSpinLock avant de passer un pointeur vers ce verrou de rotation vers l’une des fonctions NdisInterlockedXxxList .

Les appelants de NdisInitializeListHead peuvent s’exécuter sur n’importe quel IRQL. Si NdisInitializeListHead est appelé dans IRQL >= DISPATCH_LEVEL le stockage pour ListHead doit être résident.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisInitializeListHead (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisInitializeListHead (NDIS 5.1)) dans Windows XP.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ndis.h (inclure Ndis.h)
IRQL N’importe quel niveau (voir la section Remarques)

Voir aussi

DriverEntry des pilotes de protocole NDIS

MiniportInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList