Поделиться через


Функция 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.

Замечания

Осторожность

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

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

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

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

В текущей реализации список lookaside работает как стек последней и первой версии (LIFO). Таким образом, последняя запись, освобождаемая (и отправляемая в стек), является следующей записью, выделенной (выскоченной) из списка.

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях Windows.
целевая платформа Настольный
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также

ExFreeToLookasideListEx

ExInitializeLookasideListEx

LOOKASIDE_LIST_EX

LookasideListAllocateEx