Функция ExAllocateFromLookasideListEx (wdm.h)

Подпрограмма ExAllocateFromLookasideListEx удаляет первую запись из указанного списка lookaside или, если список пуст, динамически выделяет хранилище для новой записи.

Синтаксис

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

Параметры

[in, out] Lookaside

Указатель на структуру LOOKASIDE_LIST_EX , описывающую список lookaside. Эта структура ранее была инициализирована подпрограммой ExInitializeLookasideListEx .

Возвращаемое значение

ExAllocateFromLookasideListEx возвращает указатель на запись lookaside-list, если запись доступна в списке или может быть динамически выделена. В противном случае эта подпрограмма возвращает значение NULL.

Remarks

Внимание!

Начиная с Windows 11 версии 22H2 эта функция изменилась со встроенной на экспортируемую. В результате, если вы создаете драйвер, предназначенный для последней версии Windows, он не сможет загрузиться в более ранних версиях ОС. Чтобы изменить целевую версию ОС в Visual Studio, выберите Свойства конфигурации-Параметры> драйвера-Общие>.

Эта подпрограмма удаляет первую запись, если запись доступна, из указанного списка lookaside и возвращает указатель на эту запись. Если список пуст, подпрограмма выделяет хранилище для новой записи и возвращает указатель на эту запись. Если выделение не удается, подпрограмма возвращает ЗНАЧЕНИЕ NULL.

Если список lookaside пуст, ExAllocateFromLookasideListEx вызывает подпрограмму LookasideListAllocateEx для выделения хранилища для новой записи, если драйвер предоставил такую подпрограмму. В противном случае для выделения записи используется подпрограмма выделения по умолчанию.

После завершения работы с записью вызывающий объект должен освободить запись, вызвав подпрограмму ExFreeToLookasideListEx .

В текущей реализации список lookaside работает как стек lifo(last-in, first-out). Таким образом, последняя запись, освобождаемая (и помещаемая в стек), — это следующая запись, выделенная (выброщенная) из списка.

Дополнительные сведения о списках lookaside см. в разделе Использование lookaside Списки.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также раздел

ExFreeToLookasideListEx

ExInitializeLookasideListEx

LOOKASIDE_LIST_EX

LookasideListAllocateEx