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


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

ExCreatePool создает экземпляр пула запрошенного типа.

Синтаксис

NTSTATUS ExCreatePool(
  ULONG                       Flags,
  ULONG_PTR                   Tag,
  POOL_CREATE_EXTENDED_PARAMS *Params,
  HANDLE                      *PoolHandle
);

Параметры

Flags

[in] Битовая маска, указывающая тип пула и необязательные параметры создания. Необходимо указать ровно один флаг типа пула. Следующие значения являются взаимоисключающими:

Ценность Описание
POOL_CREATE_FLG_SECURE_POOL Создает экземпляр защищенного пула. Имя пула не должно быть указано при использовании этого флага.
POOL_CREATE_FLG_PAGED_POOL Создает экземпляр частного пула страниц. Имя пула должно быть предоставлено через расширенный параметр. Выделение может находиться в памяти, доступной для страниц.
POOL_CREATE_FLG_NONPAGED_POOL Создает частный экземпляр непагированного пула. Имя пула должно быть предоставлено через расширенный параметр. Выделения остаются резидентными в нераспакованной памяти.

Tag

[in] Тег (четырехзначное значение, хранящееся в маленькой форме) для связывания с пулом.

Params

[in, необязательный] Указатель на структуру POOL_CREATE_EXTENDED_PARAMS , которая предоставляет расширенные параметры создания для заданного типа пула. Этот параметр может иметь значение NULL. Параметр имени может быть предоставлен в соответствии с этими правилами: требуется для страничных и непагированных пулов; не разрешено для безопасных пулов; разрешен только один параметр имени; Неподдерживаемые типы параметров отклоняются.

PoolHandle

[out] Получает непрозрачный дескриптор для только что созданного пула при успешном выполнении.

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

Возвращает значение NTSTATUS, например одно из следующих значений.

Код возврата Описание
STATUS_SUCCESS Пул успешно создан, а PoolHandle действителен.
STATUS_INVALID_PARAMETER_1 Спецификация типа пула в Flags недействительна.
STATUS_INVALID_PARAMETER_3 Расширенные параметры недопустимы (отсутствует обязательное имя, запрещенное имя, повторяющееся имя или неподдерживаемый тип параметра).
Другие коды состояния Произошла ошибка во время создания.

Замечания

ExCreatePool создает экземпляр пула запрошенного типа (безопасный, страничный или непагированный) и возвращает непрозрачный дескриптор, который можно использовать с подпрограммами управления пулом. Вызывающий объект задает тип пула с помощью флагов и может предоставлять необязательные расширенные параметры.

В флагах должен присутствовать ровно один флаг типа пула. Имя пула требуется для страничных и непагированных пулов и должно быть опущено для безопасных пулов.

Расширенные параметры необязательны, если имя не требуется выбранному типу пула. Возвращенный дескриптор должен быть освобожден с помощью соответствующей процедуры управления пулом, если она больше не нужна.

Выделение пула выполняется путем вызова ExAllocatePool2.

Требования

Требование Ценность
минимальный поддерживаемый сервер Windows Server 2022
заголовка wdm.h (include Wdm.h)
IRQL пассивный уровень

См. также

POOL_CREATE_EXTENDED_PARAMS

ExAllocatePool2

ExFreePool2