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


перечисление 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
Страничный пул, который является страничной системной памятью. Выстраивный пул можно выделить и получить к ней доступ только в 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) Nonpaged Pool.

Доступ к непагрегированного пулу можно получить из любого IRQL, но это ограниченный ресурс, и драйверы должны выделять его только при необходимости.
NonPagedPoolNxCacheAligned
Непагованный пул NX, выровненный по границам кэша процессора. Это значение зарезервировано для монопольного использования операционной системой.
NonPagedPoolSessionNx
Зарезервировано для монопольного использования операционной системой.

Требования

Требование Значение
Заголовок wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)

См. также раздел

ExAllocatePoolWithQuotaTag

ExAllocatePoolWithTag

ExAllocatePoolWithTagPriority

ExInitializeLookasideListEx

ExInitializeNPagedLookasideList

ExInitializePagedLookasideList

LookasideListAllocateEx

SeAssignSecurity

SeAssignSecurityEx