Funzione ExAllocateFromLookasideListEx (wdm.h)
La routine ExAllocateFromLookasideListEx rimuove la prima voce dall'elenco lookaside specificato oppure, se l'elenco è vuoto, alloca dinamicamente lo spazio di archiviazione per una nuova voce.
Sintassi
PVOID ExAllocateFromLookasideListEx(
[in, out] PLOOKASIDE_LIST_EX Lookaside
);
Parametri
[in, out] Lookaside
Puntatore a una struttura LOOKASIDE_LIST_EX che descrive un elenco lookaside. Questa struttura è stata inizializzata in precedenza dalla routine ExInitializeLookasideListEx.
Valore restituito
ExAllocateFromLookasideListEx restituisce un puntatore a una voce di elenco lookaside, se una voce è disponibile nell'elenco o può essere allocata dinamicamente. In caso contrario, questa routine restituisce NULL.
Osservazioni
Cautela
A partire da Windows 11 versione 22H2, questa funzione è cambiata da inline a esportata. Di conseguenza, se si compila il driver destinato alla versione più recente di Windows, non verrà caricato nelle versioni precedenti del sistema operativo. Per modificare la versione del sistema operativo di destinazione in Visual Studio, selezionare Proprietà di configurazione- Impostazioni driver>->Generale.
Questa routine rimuove la prima voce, se è disponibile una voce, dall'elenco lookaside specificato e restituisce un puntatore a questa voce. Se l'elenco è vuoto, la routine alloca l'archiviazione per una nuova voce e restituisce un puntatore a questa voce. Se questa allocazione non riesce, la routine restituisce NULL.
Se l'elenco lookaside è vuoto, ExAllocateFromLookasideListEx chiama la routine LookasideListAllocateEx allocare spazio di archiviazione per una nuova voce, se il driver ha fornito tale routine. In caso contrario, viene utilizzata una routine di allocazione predefinita per allocare la voce.
Al termine dell'utilizzo della voce, il chiamante dovrebbe liberare la voce chiamando la routine ExFreeToLookasideListEx.
Nell'implementazione corrente, un elenco lookaside opera come stack LIFO (Last-In, First-Out). Di conseguenza, l'ultima voce da liberare (e inserita nello stack) è la voce successiva da allocare (estratta) dall'elenco.
Per altre informazioni sugli elenchi lookaside, vedere Using Lookaside Lists.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows Vista e versioni successive di Windows. |
piattaforma di destinazione | Desktop |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |