Partager via


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

Voir aussi

ExFreeToLookasideListEx

ExInitializeLookasideListEx

LOOKASIDE_LIST_EX

LookasideListAllocateEx