Condividi tramite


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

Vedere anche

ExFreeToLookasideListEx

exInitializeLookasideListEx

LOOKASIDE_LIST_EX

LookasideListAllocateEx