ExCreatePool 函数 (wdm.h)

ExCreatePool 创建请求类型的池实例。

语法

NTSTATUS ExCreatePool(
  ULONG                       Flags,
  ULONG_PTR                   Tag,
  POOL_CREATE_EXTENDED_PARAMS *Params,
  HANDLE                      *PoolHandle
);

参数

Flags

[in]指定池类型和可选创建选项的位掩码。 必须指定一个池类型标志。 以下值互斥:

价值 DESCRIPTION
POOL_CREATE_FLG_SECURE_POOL 创建安全池实例。 使用此标志时,不得提供池名称。
POOL_CREATE_FLG_PAGED_POOL 创建专用分页池实例。 必须通过扩展参数提供池名称。 分配可以驻留在可分页内存中。
POOL_CREATE_FLG_NONPAGED_POOL 创建专用非分页池实例。 必须通过扩展参数提供池名称。 分配仍驻留在非分页内存中。

Tag

[in]标记(以小端形式存储的四个字符值)以与池关联。

Params

[in,可选]指向提供给定池类型的扩展创建参数 的POOL_CREATE_EXTENDED_PARAMS 结构的指针。 此参数可以为 NULL。 可以根据以下规则提供名称参数:分页池和非分页池所必需的;安全池不允许;只允许一个名称参数;不支持的参数类型被拒绝。

PoolHandle

[out]成功时接收新创建的池的不透明句柄。

返回值

返回 NTSTATUS 值,例如以下值之一。

返回代码 DESCRIPTION
STATUS_SUCCESS 池已成功创建, PoolHandle 有效。
STATUS_INVALID_PARAMETER_1 标志中的池类型规范无效。
STATUS_INVALID_PARAMETER_3 扩展参数无效(缺少必需的名称、不允许的名称、重复的名称或不支持的参数类型)。
其他状态代码 创建过程中发生错误。

注解

ExCreatePool 创建请求类型的池实例(安全、分页或非分页),并返回可用于池管理例程的不透明句柄。 调用方通过标志指定池类型,并提供可选的扩展参数。

标志中必须存在一个池类型标志。 分页池和非分页池需要池名称,并且必须省略安全池。

当所选池类型不需要名称时,扩展参数是可选的。 不再需要时,应使用适当的池管理例程释放返回的句柄。

池分配是通过调用 ExAllocatePool2 完成的。

要求

要求 价值
支持的最低服务器 Windows Server 2022
标头 wdm.h (包括 Wdm.h)
IRQL PASSIVE_LEVEL

另请参阅

POOL_CREATE_EXTENDED_PARAMS

ExAllocatePool2

ExFreePool2