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 开始,NonPagedPoolExecute 是 NonPagedPool 值的备用名称。 此值指示分配的内存是非分页且可执行的,即在此内存中启用指令执行。 若要从早期版本的 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) |
另请参阅
ExInitializeNPagedLookasideList