Macro NdisInterlockedPushEntrySList (ndis.h)

La fonction NdisInterlockedPushEntrySList insère une entrée en tête d’une liste séquentiellement liée.

Syntaxe

void NdisInterlockedPushEntrySList(
        SListHead,
        SListEntry,
  [in]  Lock
);

Paramètres

SListHead

Pointeur vers la tête de la liste séquencée et liée séparément dans laquelle l’entrée spécifiée doit être insérée.

SListEntry

Pointeur vers l’entrée à insérer.

[in] Lock

Pointeur vers un verrou de rotation fourni par l’appelant, qui n’est pas actuellement détenu par l’appelant.

Valeur de retour

None

Remarques

Avant l’appel initial du pilote à la fonction NdisInterlockedPushEntrySList , il doit initialiser l’en-tête de liste avec le Fonction NdisInitializeSListHead .

Un pilote ne doit pas tenir le verrou donné lorsqu’il appelle NdisInterlockedPushEntrySList. Si nécessaire, un pilote doit appeler la fonction NdisReleaseSpinLock avant d’appeler NdisInterlockedPushEntrySList. NdisInterlockedPushEntrySList doit acquérir ce verrou lui-même avant d’insérer ListEntry en tête de la liste pour s’assurer que cette opération est gérée de manière sécurisée par plusieurs processeurs.

L’appelant doit fournir un stockage résident pour le verrou, qui doit être initialisé avec la fonction NdisAllocateSpinLock avant l’appel initial à n’importe quel NdisInterlocked. Routine SList .

Les pilotes qui réessayent des opérations d’E/S doivent utiliser une file d’attente verrouillée doublement liée et le NdisInterlockedInsert/Remove. Fonctions de liste , au lieu d’une S-List.

Si NdisInterlockedPushEntrySList est appelé dans IRQL >= DISPATCH_LEVEL, le stockage du paramètre ListHead et des entrées de liste 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 NdisInterlockedPushEntrySList (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisInterlockedPushEntrySList (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

NdisAllocateSpinLock

NdisFreeSpinLock

NdisInitializesListHead

NdisInterlockedPopEntrySList

NdisQueryDepthSList

NdisReleaseSpinLock