ExFreeToNPagedLookasideList 函数 (wdm.h)

ExFreeToNPagedLookasideList 例程将非分页项返回到给定的 lookaside 列表或非分页池。

语法

void ExFreeToNPagedLookasideList(
  [in, out] PNPAGED_LOOKASIDE_LIST Lookaside,
  [in]      PVOID                  Entry
);

参数

[in, out] Lookaside

指向 lookaside 列表 的NPAGED_LOOKASIDE_LIST 结构的指针,调用方已使用 ExInitializeNPagedLookasideList 初始化该列表。

[in] Entry

指向要释放的条目的指针。 调用方从先前对 ExAllocateFromNPagedLookasideList 的调用中获取了此指针。

返回值

备注

注意

从 Windows 11 版本 22H2 开始,此函数从内联更改为导出。 因此,如果生成面向最新版本的 Windows 的驱动程序,将无法在较旧的 OS 版本中加载该驱动程序。 若要在 Visual Studio 中更改目标 OS 版本,请选择“配置属性”->“驱动程序设置”->“常规”。

ExFreeToNPagedLookasideListExAllocateFromNPagedLookasideList 的倒数。 当调用方分配的条目不再使用时,它会将调用方分配的条目释放回调用方旁观列表或非分页池。

可以重新分配同一条目,也可以在以后通过对 ExAllocateFromNPagedLookasideList 的后续调用来分配另一个条目。 lookaside list 的用户可以根据需要动态分配和释放此类条目,直到它调用 ExDeleteNPagedLookasideList,该列表在清除给定的 lookaside 列表的系统状态并返回控件之前释放列表中任何未完成的条目。

如果指定的 lookaside 列表尚未达到系统确定的最大条目数, ExFreeToNPagedLookasideList 会将给定条目插入列表的前面。 否则, Entry 处的缓冲区将使用调用方提供 的免费 例程(如果有)发布到非分页池(如果有),该例程是在初始化 lookaside 列表时设置的或 ExFreePool

有关详细信息,请参阅使用 Lookaside Lists

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 SpIrql (storport)

另请参阅

ExAllocateFromNPagedLookasideList

ExDeleteNPagedLookasideList

ExInitializeNPagedLookasideList

NPAGED_LOOKASIDE_LIST