ExAllocateFromNPagedLookasideList 函数 (wdm.h)
ExAllocateFromNPagedLookasideList 例程返回指向给定 lookaside 列表中的非分页条目的指针,或者返回指向新分配的非分页条目的指针。
语法
PVOID ExAllocateFromNPagedLookasideList(
[in, out] PNPAGED_LOOKASIDE_LIST Lookaside
);
参数
[in, out] Lookaside
指向查找列表 的NPAGED_LOOKASIDE_LIST 结构的指针,调用方已使用 ExInitializeNPagedLookasideList 初始化该结构。
返回值
ExAllocateFromNPagedLookasideList 返回指向条目的指针(如果可以分配)。 否则,它将返回 NULL。
备注
注意
从 Windows 11 版本 22H2 开始,此函数从内联更改为导出。 因此,如果你生成面向最新版本的 Windows 的驱动程序,它将无法在较旧的 OS 版本中加载。 若要在 Visual Studio 中更改目标 OS 版本,请选择“配置属性”->“驱动程序设置”->“常规”。
如果给定的 lookaside 列表不为空, ExAllocateFromNPagedLookasideList 将从列表中删除第一个条目,并返回指向此条目的指针。 否则, ExAllocateFromNPagedLookasideList 会调用在列表初始化时指定的 Allocate 例程或 ExAllocatePoolWithTag 来返回入口指针。
然后,调用方可以使用调用方确定的任何数据设置返回的条目。 例如,驱动程序可能会使用每个此类固定大小的条目,将命令块(如 SCSI SRB)设置为特定类型的 I/O 总线上的外围设备。 当每个条目不再使用时,调用方应使用 ExFreeToNPagedLookasideList 释放该条目。
有关详细信息,请参阅使用 Lookaside Lists。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 桌面 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
另请参阅
ExAllocateFromPagedLookasideList