Поделиться через


перечисление 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
пула страниц , который является страницоемой системной памятью. Пул страниц можно выделить и получить к ней доступ в < DISPATCH_LEVEL IRQL.
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 (include Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)

См. также

ExAllocatePoolWithQuotaTag

ExAllocatePoolWithTag

ExAllocatePoolWithTagPriority

ExInitializeLookasideListEx

ExInitializeNPagedLookasideList

ExInitializePagedLookasideList

LookasideListAllocateEx

SeAssignSecurity

SeAssignSecurityEx