Функция ExAllocateFromPagedLookasideList (wdm.h)
Подпрограмма ExAllocateFromPagedLookasideList возвращает указатель на выгружаемую запись из заданного списка просмотра или указатель на только что выделенную выгружаемую запись.
Синтаксис
PVOID ExAllocateFromPagedLookasideList(
[in, out] PPAGED_LOOKASIDE_LIST Lookaside
);
Параметры
[in, out] Lookaside
Указатель на структуру PAGED_LOOKASIDE_LIST для списка lookaside, который вызывающий объект уже инициализировал с помощью ExInitializePagedLookasideList.
Возвращаемое значение
ExAllocateFromPagedLookasideList возвращает указатель на запись, если ее можно выделить. В противном случае возвращается значение NULL.
Remarks
Внимание!
Начиная с Windows 11 версии 22H2 эта функция изменилась со встроенной на экспортируемую. В результате, если вы создаете драйвер, предназначенный для последней версии Windows, он не сможет загрузиться в более старых версиях ОС. Чтобы изменить целевую версию ОС в Visual Studio, выберите Свойства конфигурации-Параметры> драйвера-Общие>.
Если данный список lookaside не пуст, ExAllocateFromPagedLookasideList удаляет первую запись из списка и возвращает указатель на эту запись. В противном случае ExAllocateFromPagedLookasideList вызывает подпрограмму Выделения , указанную при инициализации списка, или ExAllocatePoolWithTag для возврата указателя входа.
Затем вызывающий объект может настроить возвращенную запись с любыми данными, определяемыми вызывающим. Вызывающий объект должен освобождать каждую запись с ExFreeToPagedLookasideList , когда она больше не используется.
Так как записи в выстраиваемом списке просмотра выделяются из страничной памяти, доступ к им не должен осуществляться в irQL >= DISPATCH_LEVEL. Вы можете использовать ExAllocateFromNPagedLookasideList , чтобы создать список lookaside с нестранимыми записями.
В Windows 2000 драйверы должны использовать параметр -D_WIN2K_COMPAT_SLIST_USAGE для успешного связывания кода, использующего ExAllocateFromPagedLookasideList.
Дополнительные сведения см. в статье Использование lookaside Списки.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
См. также раздел
ExAllocateFromNPagedLookasideList