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 稍后可用于安全描述符查询或更改。
可以在 ks.h中找到 KSCREATE_ITEM_IRP_STORAGE(Irp) 和相关宏。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |