Функция 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 |