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 |