KsCreateDefaultAllocatorEx 函数 (ks.h)
创建使用指定内存池的默认分配器,并使用内部调度表 (KSDISPATCH_TABLE) 将 IoGetCurrentIrpStackLocation (pIrp) -FileObject> 与此分配器相关联。
语法
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 稍后可用于安全描述符查询或更改。
可以在 ks.h 中找到 KSCREATE_ITEM_IRP_STORAGE (Irp) 和相关宏。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ks.h (包括 Ks.h) |
Library | Ks.lib |