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 来修改枚举值。 如果无法满足请求,则此标志会导致引发异常。 不建议使用此标志,因为它成本高昂。

同样,可以通过按位 ORing 此值来修改 PoolType 值,并使用 POOL_COLD_ALLOCATION 标志(在 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)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (请参阅“备注”部分)
DDI 符合性规则 HwStorPortProhibitedDDIs、IrqlExAllocatePool、IrqlExFree2、SpNoWait、StorPortStartIo

另请参阅

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero