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 |