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


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

Подпрограмма ExAllocateFromPagedLookasideList возвращает указатель на страницную запись из заданного списка lookaside или возвращает указатель на только что выделенную запись страницы.

Синтаксис

PVOID ExAllocateFromPagedLookasideList(
  [in, out] PPAGED_LOOKASIDE_LIST Lookaside
);

Параметры

[in, out] Lookaside

Указатель на структуру PAGED_LOOKASIDE_LIST для списка lookaside, который вызывающий объект уже инициализирован с помощью ExInitializePagedLookasideList.

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

ExAllocateFromPagedLookasideList возвращает указатель на запись, если ее можно выделить. В противном случае возвращается NULL.

Замечания

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

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

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

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

Так как записи в списке страничного поиска выделяются из страницной памяти, они не должны быть доступны в >IRQL = DISPATCH_LEVEL. Вы можете использовать ExAllocateFromNPagedLookasideList для создания списка lookaside с нестранимыми записями.

В Windows 2000 драйверы должны использовать параметр -D_WIN2K_COMPAT_SLIST_USAGE для успешного связывания кода, использующего ExAllocateFromPagedLookasideList.

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

Требования

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

См. также

ExAllocateFromNPagedLookasideList

ExFreeToPagedLookasideList

ExInitializePagedLookasideList

PAGED_LOOKASIDE_LIST