POOL_TYPE枚举 (wdm.h)

POOL_TYPE 枚举类型指定要分配的系统内存的类型。

语法

typedef enum _POOL_TYPE {
    NonPagedPool,
    NonPagedPoolExecute = NonPagedPool,
    PagedPool,
    NonPagedPoolMustSucceed = NonPagedPool + 2,
    DontUseThisType,
    NonPagedPoolCacheAligned = NonPagedPool + 4,
    PagedPoolCacheAligned,
    NonPagedPoolCacheAlignedMustS = NonPagedPool + 6,
    MaxPoolType,
    NonPagedPoolBase = 0,
    NonPagedPoolBaseMustSucceed = NonPagedPoolBase + 2,
    NonPagedPoolBaseCacheAligned = NonPagedPoolBase + 4,
    NonPagedPoolBaseCacheAlignedMustS = NonPagedPoolBase + 6,
    NonPagedPoolSession = 32,
    PagedPoolSession = NonPagedPoolSession + 1,
    NonPagedPoolMustSucceedSession = PagedPoolSession + 1,
    DontUseThisTypeSession = NonPagedPoolMustSucceedSession + 1,
    NonPagedPoolCacheAlignedSession = DontUseThisTypeSession + 1,
    PagedPoolCacheAlignedSession = NonPagedPoolCacheAlignedSession + 1,
    NonPagedPoolCacheAlignedMustSSession = PagedPoolCacheAlignedSession + 1,
    NonPagedPoolNx = 512,
    NonPagedPoolNxCacheAligned = NonPagedPoolNx + 4,
    NonPagedPoolSessionNx = NonPagedPoolNx + 32,

} POOL_TYPE;

常数

 
NonPagedPool
非分页池,这是不可分页的系统内存。 可以从任何 IRQL 访问非分页池,但它是稀缺的资源,驱动程序应仅在必要时分配它。

使用 NonPagedPool 池类型分配的系统内存是可执行的。 有关详细信息,请参阅 NonPagedPoolExecute 池类型的说明。

从 Windows 8 开始,驱动程序应从无执行(NX) 非分页池而不是可执行的非分页池分配大部分或全部非分页内存。 有关详细信息,请参阅 NonPagedPoolNx 池类型的说明。
NonPagedPoolExecute
从 Windows 8 开始,NonPagedPoolExecuteNonPagedPool 值的备用名称。 此值指示分配的内存是非分页内存和可执行文件,即在此内存中启用指令执行。 若要从早期版本的 Windows 移植驱动程序,通常应将驱动程序源代码中 NonPagedPool 名称的所有或大多数实例替换为 NonPagedPoolNx。 避免将 NonPagedPool 名称的实例替换为 NonPagedPoolExecute,除非显式需要可执行内存的情况。 有关详细信息,请参阅 No-Execute(NX) 非分页池
PagedPool
分页池,这是可分页的系统内存。 只能在 IRQL < DISPATCH_LEVEL 分配和访问分页池。
NonPagedPoolMustSucceed
此值 仅供内部使用,并且仅在系统启动期间允许使用。 驱动程序不能在系统启动以外的时间指定此值,因为如果请求的内存大小不可用,“必须成功”请求会崩溃系统。
DontUseThisType
保留供系统使用。
NonPagedPoolCacheAligned
非分页池,在处理器缓存边界上对齐。 此值 仅供内部使用
PagedPoolCacheAligned
分页池,在处理器缓存边界上对齐。 此值 仅供内部使用
NonPagedPoolCacheAlignedMustS
此值 仅供内部使用,并且仅在系统启动期间允许使用。 它是 NonPagedPoolMustSucceed的缓存对齐等效项。
MaxPoolType
保留供系统使用。
NonPagedPoolBase
保留供系统使用。
NonPagedPoolBaseMustSucceed
保留供系统使用。
NonPagedPoolBaseCacheAligned
保留供系统使用。
NonPagedPoolBaseCacheAlignedMustS
保留供系统使用。
NonPagedPoolSession
荒废的。 请勿使用。
PagedPoolSession
荒废的。 请勿使用。
NonPagedPoolMustSucceedSession
荒废的。 请勿使用。
DontUseThisTypeSession
荒废的。 请勿使用。
NonPagedPoolCacheAlignedSession
荒废的。 请勿使用。
PagedPoolCacheAlignedSession
荒废的。 请勿使用。
NonPagedPoolCacheAlignedMustSSession
荒废的。 请勿使用。
NonPagedPoolNx
无执行 (NX) 非分页池。 此池类型从 Windows 8 开始可用。 与 NonPagedPool 指定的非分页池(分配可执行内存)相比,NX 非分页池分配禁用指令执行的内存。 有关详细信息,请参阅 No-Execute(NX) 非分页池

可以从任何 IRQL 访问非分页池,但它是稀缺的资源,驱动程序应仅在必要时分配它。
NonPagedPoolNxCacheAligned
NX 非分页池,在处理器缓存边界上对齐。 此值保留供作系统独占使用。
NonPagedPoolSessionNx
保留供作系统独占使用。

要求

要求 价值
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Wudfwdm.h)

另请参阅

ExAllocatePoolWithQuotaTag

ExAllocatePoolWithTag

ExAllocatePoolWithTagPriority

ExInitializeLookasideListEx

ExInitializeNPagedLookasideList

ExInitializePagedLookasideList

LookasideListAllocateEx

SeAssignSecurity

SeAssignSecurityEx