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) |