Fonction ExAllocateFromLookasideListEx (wdm.h)
La routine ExAllocateFromLookasideListEx supprime la première entrée de la liste de lookaside spécifiée ou, si la liste est vide, alloue dynamiquement le stockage pour une nouvelle entrée.
Syntaxe
PVOID ExAllocateFromLookasideListEx(
[in, out] PLOOKASIDE_LIST_EX Lookaside
);
Paramètres
[in, out] Lookaside
Pointeur vers une structure de LOOKASIDE_LIST_EX qui décrit une liste de lookaside. Cette structure a été initialisée par la routine ExInitializeLookasideListEx .
Valeur retournée
ExAllocateFromLookasideListEx retourne un pointeur vers une entrée lookaside-list, si une entrée est disponible dans la liste ou peut être allouée dynamiquement. Dans le cas contraire, cette routine retourne null.
Notes
Attention
À partir de Windows 11, version 22H2, cette fonction est passée d’inline à exportée. Par conséquent, si vous générez votre pilote ciblant la dernière version de Windows, il ne parvient pas à se charger dans les anciennes versions du système d’exploitation. Pour modifier la version du système d’exploitation cible dans Visual Studio, sélectionnez Propriétés de configuration-Paramètres du> pilote-Général>.
Cette routine supprime la première entrée, si une entrée est disponible, de la liste de lookaside spécifiée et retourne un pointeur vers cette entrée. Si la liste est vide, la routine alloue le stockage pour une nouvelle entrée et retourne un pointeur vers cette entrée. Si cette allocation échoue, la routine retourne NULL.
Si la liste de recherche est vide, ExAllocateFromLookasideListEx appelle la routine LookasideListAllocateEx pour allouer du stockage pour une nouvelle entrée, si le pilote a fourni une telle routine. Sinon, une routine d’allocation par défaut est utilisée pour allouer l’entrée.
Une fois que l’appelant a terminé d’utiliser l’entrée, il doit libérer l’entrée en appelant la routine ExFreeToLookasideListEx .
Dans l’implémentation actuelle, une liste de lookaside fonctionne comme une pile lifo (last-in, first-out). Ainsi, la dernière entrée à libérer (et à pousser sur la pile) est l’entrée suivante à allouer (extrait) de la liste.
Pour plus d’informations sur les listes de lookaside, consultez Utilisation de lookaside Listes.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions plus récentes de Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |