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


Функция 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 путем побитового ввода этого значения с флагом POOL_COLD_ALLOCATION (также определенным в ) в wdm.hкачестве указания для ядра, чтобы выделить память на страницах, которые, скорее всего, будут быстро выгружатся. Чтобы как можно больше уменьшить объем памяти резидентного пула, не следует часто ссылаться на эти выделения. Флаг POOL_COLD_ALLOCATION является только рекомендательный.

NumberOfBytes

Количество байтов, которые необходимо выделить.

Tag

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

Priority

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

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

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

Комментарии

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

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

Требования

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

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

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero