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) Nonpaged Pool
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) Nonpaged Pool

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

要求

要求
Header wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Wudfwdm.h)

另请参阅

ExAllocatePoolWithQuotaTag

ExAllocatePoolWithTag

ExAllocatePoolWithTagPriority

ExInitializeLookasideListEx

ExInitializeNPagedLookasideList

ExInitializePagedLookasideList

LookasideListAllocateEx

SeAssignSecurity

SeAssignSecurityEx