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