Partager via


Macro NdisAllocateFromNPagedLookasideList (ndis.h)

La fonction NdisAllocateFromNPagedLookasideList supprime la première entrée de l’en-tête de liste de lookaside donné. Si la liste de lookaside est actuellement vide, une entrée est allouée à partir d’un pool non paginé.

Syntaxe

void NdisAllocateFromNPagedLookasideList(
   _L
);

Paramètres

_L

Pointeur vers le début de la liste de lookaside à partir de laquelle l’entrée sera allouée. L’appelant a déjà initialisé l’en-tête de liste avec le Fonction NdisInitializeNPagedLookasideList .

Valeur de retour

None

Remarques

Si la liste de lookaside n’est pas vide, NdisAllocateFromNPagedLookasideList supprime la première entrée de la liste et retourne son adresse à l’appelant. Si la liste de lookaside est vide, NdisAllocateFromNPagedLookasideList appelle la fonction Allocate , spécifiée dans le paramètre Allocate du NdisInitializeNPagedLookasideList , que l’appelant a spécifié lors de l’initialisation de la liste, le cas échéant, ou qu’elle alloue une entrée pour le compte de l’appelant. NdisAllocateFromNPagedLookasideList retourne la valeur NULL si la fonction Allocate fournie par l’appelant, le cas échéant, ou si cette fonction elle-même ne peut pas allouer une entrée non pagée.

Toutes les entrées allouées à partir d’une liste de lookaside non paginée sont d’une taille fixe, qui a été spécifiée lorsque le pilote s’appelait initialement NdisInitializeNPagedLookasideList. Par conséquent, une liste de lookaside est particulièrement utile pour les pilotes qui doivent allouer des blocs de taille fixe dans lesquels maintenir l’état en réponse à la demande d’E/S dynamiques. Par exemple, tout pilote NDIS orienté connexion peut allouer les zones de contexte VC dont il a besoin à partir d’une liste de lookaside lorsque les machines virtuelles sont créées et libérer chacune de ces entrées dans la liste de lookaside avec le Fonction NdisFreeToNPagedLookasideList lorsque chaque vc est détruit.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisAllocateFromNPagedLookasideList (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisAllocateFromNPagedLookasideList (NDIS 5.1)) dans Windows XP.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI Irql_Miscellaneous_Function(ndis), NdisAllocateFromNPagedLookasideList(ndis), NdisAllocateFromNPagedLookasideList_InitFail(ndis)

Voir aussi

NdisDeleteNPagedLookasideList NdisFreeToNPagedLookasideList NdisInitializeNPagedLookasideList