перечисление 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) |
См. также раздел
ExInitializeNPagedLookasideList