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) 非分页池。 |
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) |
另请参阅
ExInitializeNPagedLookasideList