Compartilhar via


Função ExAllocateFromLookasideListEx (wdm.h)

A rotina ExAllocateFromLookasideListEx remove a primeira entrada da lista lookaside especificada ou, se a lista estiver vazia, aloca dinamicamente o armazenamento para uma nova entrada.

Sintaxe

PVOID ExAllocateFromLookasideListEx(
  [in, out] PLOOKASIDE_LIST_EX Lookaside
);

Parâmetros

[in, out] Lookaside

Um ponteiro para uma estrutura LOOKASIDE_LIST_EX que descreve uma lista lookaside. Essa estrutura foi inicializada anteriormente pela rotina ExInitializeLookasideListEx .

Retornar valor

ExAllocateFromLookasideListEx retorna um ponteiro para uma entrada lookaside-list, se uma entrada estiver disponível na lista ou puder ser alocada dinamicamente. Caso contrário, essa rotina retornará NULL.

Comentários

Cuidado

A partir de Windows 11, versão 22H2, essa função mudou de embutida para exportada. Como resultado, se você criar seu driver visando a versão mais recente do Windows, ele falhará ao carregar em versões mais antigas do sistema operacional. Para alterar a versão do sistema operacional de destino no Visual Studio, selecione Propriedades de Configuração -Configurações do> Driver-Geral>.

Essa rotina remove a primeira entrada, se uma entrada estiver disponível, da lista lookaside especificada e retorna um ponteiro para essa entrada. Se a lista estiver vazia, a rotina alocará armazenamento para uma nova entrada e retornará um ponteiro para essa entrada. Se essa alocação falhar, a rotina retornará NULL.

Se a lista lookaside estiver vazia, ExAllocateFromLookasideListExchamará a rotina LookasideListAllocateEx para alocar armazenamento para uma nova entrada, se o driver tiver fornecido essa rotina. Caso contrário, uma rotina de alocação padrão será usada para alocar a entrada.

Depois que o chamador terminar de usar a entrada, ele deverá liberar a entrada chamando a rotina ExFreeToLookasideListEx .

Na implementação atual, uma lista lookaside opera como uma pilha LIFO (última entrada e primeira saída). Portanto, a última entrada a ser liberada (e enviada por push para a pilha) é a próxima entrada a ser alocada (exibida) da lista.

Para obter mais informações sobre listas lookaside, consulte Using Lookaside Listas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores do Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Confira também

ExFreeToLookasideListEx

ExInitializeLookasideListEx

LOOKASIDE_LIST_EX

LookasideListAllocateEx