Macro NdisInitializeSListHead (ndis.h)

La fonction NdisInitializeSListHead initialise la tête d’une liste séquencée, verrouillée et liée séparément.

Syntaxe

void NdisInitializeSListHead(
  [in]  SListHead
);

Paramètres

[in] SListHead

Pointeur vers l’en-tête de liste fournie par l’appelant à initialiser, qui doit être dans la mémoire résidente. La structure doit être alignée sur 16 octets sur les plateformes 64 bits.

Valeur de retour

None

Remarques

NdisInitializeSListHead zéro initialise l’en-tête de liste opaque dans SListHead et définit le pointeur de la première entrée sur NULL.

Le numéro de séquence dans une liste S est incrémenté chaque fois qu’une entrée est insérée ou supprimée de la liste.

Toutes les entrées d’une liste S-List doivent être sans page.

Tout pilote qui utilise une S-List doit fournir un verrou de rotation au NdisInterlockedPushEntrySList et Fonctions NdisInterlockedPopEntrySList . Avant son appel initial à l’une de ces fonctions, le pilote doit initialiser le verrou de rotation avec la fonction NdisAllocateSpinLock . Pour éviter les interblocages, le pilote ne doit pas tenir ce verrou tournant lorsqu’il effectue des appels ultérieurs à NdisInterlockedPushEntrySList et NdisInterlockedPopEntrySList.

Pour gérer un pool d’entrées de taille fixe à partir de la mémoire non paginée, envisagez d’utiliser une liste de recherche au lieu d’une liste S-List.

Les pilotes qui réessayent des opérations d’E/S doivent utiliser une file d’attente verrouillée doublement liée et les fonctions NdisInterlockedInsertHeadList, NdisInterlockedInsertTailList et NdisInterlockedRemoveHeadList , plutôt qu’une S-List.

Si NdisInitializeSListHead est appelé dans IRQL >= DISPATCH_LEVEL, le stockage du paramètre SListHead 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 NdisInitializeSListHead (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisInitializeSListHead (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 aussi

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem