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


Функция ExAllocatePoolPriorityUninitialized (wdm.h)

Эта подпрограмма является вариантом оболочки и замены для ExAllocatePoolWithTagPriority.

ExAllocatePoolPriorityUninitialized выделяет память пула указанного типа.

Синтаксис

PVOID ExAllocatePoolPriorityUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag,
  EX_POOL_PRIORITY                               Priority
);

Параметры

PoolType

Тип выделяемой памяти пула. Описание доступных типов памяти пула см. в POOL_TYPE.

Можно изменить значение перечисления, выполнив побитовое ИЛИ с флагом POOL_RAISE_IF_ALLOCATION_FAILURE, определенным в wdm.h. Этот флаг вызывает исключение, если запрос не может быть удовлетворен. Использование этого флага не рекомендуется, так как это затратно.

Аналогичным образом можно изменить значение PoolType, побитовое значение ORing с флагом POOL_COLD_ALLOCATION (также определено в wdm.h) в качестве указания на ядро, чтобы выделить память на страницах, которые, скорее всего, будут выгружаются быстро. Чтобы уменьшить объем памяти пула резидентов максимально возможно, не следует часто ссылаться на эти выделения. Флаг POOL_COLD_ALLOCATION — это только рекомендации.

NumberOfBytes

Количество выделенных байтов.

Tag

Тег пула, используемый для выделенной памяти. Дополнительные сведения см. в параметре Тега ExAllocatePoolWithTag.

Priority

Значение перечисления EX_POOL_PRIORITY, указывающее приоритет этого запроса.

Возвращаемое значение

ExAllocatePoolPriorityUninitialized возвращает значение NULL, если в пуле свободного пула недостаточно памяти, если POOL_RAISE_IF_ALLOCATION_FAILURE не задано. В противном случае подпрограмма возвращает указатель на выделенную память.

Замечания

Память, которая exAllocatePoolPriorityUninitialized выделяется неинициализируется. Драйвер в режиме ядра должен сначала нулю этой памяти, если он будет видимым для программного обеспечения в пользовательском режиме (чтобы избежать утечки потенциально привилегированного содержимого).

Дополнительные рекомендации см. в разделе примечания ExAllocatePoolWithTagPriority.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Требуется WDK для Windows 10 версии 2004. Предназначено для Windows 7 и более поздних версий операционной системы Windows.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (см. раздел "Примечания")
правил соответствия DDI HwStorPortProhibitedDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo

См. также

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero