Функция KsCreateDefaultAllocatorEx (ks.h)
Создает распределителя по умолчанию, который использует указанный пул памяти и связывает IoGetCurrentIrpStackLocation(pIrp)->FileObject с этим распределителем с помощью внутренней таблицы диспетчеризации (KSDISPATCH_TABLE).
Синтаксис
KSDDKAPI NTSTATUS KsCreateDefaultAllocatorEx(
[in] PIRP Irp,
[in, optional] PVOID InitializeContext,
[in, optional] PFNKSDEFAULTALLOCATE DefaultAllocate,
[in, optional] PFNKSDEFAULTFREE DefaultFree,
[in, optional] PFNKSINITIALIZEALLOCATOR InitializeAllocator,
[in, optional] PFNKSDELETEALLOCATOR DeleteAllocator
);
Параметры
[in] Irp
Содержит IRP с обрабатываемым запросом на создание распределителя.
[in, optional] InitializeContext
При необходимости содержит контекст для использования с внешним распределителем. Он используется только в качестве контекста инициализации для необязательного обратного вызова InitializeAllocator при создании контекста распределителя. Параметр не используется иным образом. Если внешний распределител не указан, для этого параметра необходимо задать значение NULL.
[in, optional] DefaultAllocate
При необходимости содержит внешнюю функцию выделения, которая используется вместо выделения пула по умолчанию. Если значение равно NULL, используется выделение по умолчанию.
[in, optional] DefaultFree
При необходимости содержит внешнюю свободную функцию, которая используется вместо выделения пула по умолчанию. Если внешний распределител не указан, для этого параметра необходимо задать значение NULL.
[in, optional] InitializeAllocator
При необходимости содержит функцию инициализации внешнего распределителя, в которую передается параметр InitializeContext. Ожидается, что эта функция возвращает контекст распределителя на основе кадра распределителя. Если внешний распределител не указан, для этого параметра необходимо задать значение NULL.
[in, optional] DeleteAllocator
При необходимости содержит функцию удаления внешнего распределителя, которая используется для внешних распределителей. Если внешний распределител не указан, для этого параметра необходимо задать значение NULL.
Возвращаемое значение
Возвращает STATUS_SUCCESS, в противном случае ошибка при сбое создания распределителя по умолчанию. Не завершает IRP или не задает состояние в IRP.
Комментарии
Перед вызовом этой подпрограммы макрос KSCREATE_ITEM_IRP_STORAGE(Irp) должен вернуть указатель на структуру KSOBJECT_CREATE_ITEM , которая является элементом создания для этого распределителя. KsCreateDefaultAllocatorEx задает значение FsContext , указывающее на возвращаемое значение этого макроса. Таким образом, FsContext можно позже использовать для запросов или изменений дескриптора безопасности.
Вы можете найти KSCREATE_ITEM_IRP_STORAGE(Irp) и связанные макросы в ks.h.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ks.h (включая Ks.h) |
Библиотека | Ks.lib |