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.

Valor de retorno

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 .

Observações

Cuidado

A partir do Windows 11, versão 22H2, essa função foi alterada de embutida para exportada. Como resultado, se você criar o 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 de 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á o 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, ExAllocateFromLookasideListEx chamará 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 é 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 saída). Assim, a última entrada a ser liberada (e enviada por push para a pilha) é a próxima entrada a ser alocada (estourada) da lista.

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

Requisitos

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

Consulte também

ExFreeToLookasideListEx

ExInitializeLookasideListEx

LOOKASIDE_LIST_EX

LookasideListAllocateEx