ExAllocateFromPagedLookasideList 函数 (wdm.h)
ExAllocateFromPagedLookasideList 例程返回指向给定 lookaside 列表中的分页条目的指针,或者返回指向新分配的分页条目的指针。
语法
PVOID ExAllocateFromPagedLookasideList(
[in, out] PPAGED_LOOKASIDE_LIST Lookaside
);
参数
[in, out] Lookaside
指向 lookaside 列表的 PAGED_LOOKASIDE_LIST 结构的指针,调用方已使用 ExInitializePagedLookasideList初始化该结构。
返回值
ExAllocateFromPagedLookasideList 返回指向条目的指针(如果可以分配)。 否则,它将返回 NULL 。
言论
谨慎
从 Windows 11 版本 22H2 开始,此函数从内联更改为导出。 因此,如果生成面向最新版本 Windows 的驱动程序,它将无法在较旧的 OS 版本中加载。 若要在 Visual Studio 中更改目标 OS 版本,请选择“配置属性->驱动程序设置->常规”。
如果给定的 lookaside 列表不为空,ExAllocateFromPagedLookasideList 从列表中删除第一个条目,并返回指向此条目的指针。 否则,ExAllocateFromPagedLookasideList 调用在列表初始化时指定的 分配 例程,或 ExAllocatePoolWithTag 返回条目指针。
然后,调用方可以使用任何调用方确定的数据设置返回的条目。 调用方应在不再使用时释放每个条目,ExFreeToPagedLookasideList。
由于分页查找列表中的条目是从可分页内存中分配的,因此不能在 IRQL >= DISPATCH_LEVEL访问这些条目。 可以使用 ExAllocateFromNPagedLookasideList 创建具有不可分页条目的望边列表。
在 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