exAllocatePoolPriorityUninitialized 函数 (wdm.h)

此例程是 ExAllocatePoolWithTagPriority 的包装和替换选项。

ExAllocatePoolPriorityUninitialized 分配指定类型的池内存。

语法

PVOID ExAllocatePoolPriorityUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag,
  EX_POOL_PRIORITY                               Priority
);

参数

PoolType

要分配的池内存的类型。 有关可用池内存类型的说明,请参阅 POOL_TYPE

可以通过使用 中wdm.h定义的POOL_RAISE_IF_ALLOCATION_FAILURE标志执行按位 OR 来修改枚举值。 如果无法满足请求,此标志会导致引发异常。 不建议使用此标志,因为它的成本很高。

同样,可以通过使用POOL_COLD_ALLOCATION标志对此值进行按位操作来修改 PoolType 值, () 中wdm.h也定义为内核的提示,以便从可能快速分页的页中分配内存。 若要尽可能减少驻留池内存量,不应频繁引用这些分配。 POOL_COLD_ALLOCATION标志只是公告。

NumberOfBytes

要分配的字节数。

Tag

要用于已分配内存的池标记。 有关详细信息,请参阅 ExAllocatePoolWithTag 的 Tag 参数。

Priority

一个EX_POOL_PRIORITY枚举值,该值指定此请求的优先级。

返回值

如果可用池中的内存不足,则 ExAllocatePoolPriorityUninitialized 返回 NULL,除非指定了POOL_RAISE_IF_ALLOCATION_FAILURE。 否则,例程返回指向已分配内存的指针。

注解

ExAllocatePoolPriorityUninitialized 分配的内存未初始化。 如果内核模式驱动程序要使其对用户模式软件 (可见,则必须先将其归零,以避免泄露潜在的特权内容)

有关其他指导,请参阅 ExAllocatePoolWithTagPriority“备注”部分。

要求

要求
最低受支持的客户端 Windows 10版本 2004 需要 WDK。 面向 Windows 7 及更高版本的 Windows 操作系统。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (请参阅备注部分)
DDI 符合性规则 HwStorPortProhibitedDDI、IrqlExAllocatePool、IrqlExFree2、SpNoWait、StorPortStartIo

另请参阅

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero