ClfsAddLogContainerSet 函数 (wdm.h)
ClfsAddLogContainerSet 例程以原子方式将一组容器添加到 CLFS 日志。
语法
CLFSUSER_API NTSTATUS ClfsAddLogContainerSet(
[in] PLOG_FILE_OBJECT plfoLog,
[in] USHORT cContainers,
[in, optional] PULONGLONG pcbContainer,
[in] PUNICODE_STRING rguszContainerPath
);
参数
[in] plfoLog
指向 LOG_FILE_OBJECT 结构的指针,该结构表示将向其添加容器的日志。 调用方之前通过调用 ClfsCreateLogFile获取此指针。
[in] cContainers
集中的容器数。 这是 rguszContainerPath 数组中的元素数。
[in, optional] pcbContainer
指向 ULONGLONG 类型的变量的指针。 此参数的角色取决于日志当前是否至少有一个容器。
- 如果日志当前没有容器,则调用方会提供一个正整数,该整数是单个容器的请求大小(以字节为单位)。 CLFS 将创建请求的大小舍入为 512KB(专用日志)或 1MB(对于多路复用日志)的倍数的容器。
- 如果日志当前至少有一个容器,并且此参数是 NULL 指针,则 CLFS 将创建与现有容器大小相同的新容器。 (日志中的所有容器的大小必须相同。
- 如果日志当前至少有一个容器,并且此参数是有效的指针,则调用方会提供一个正整数,该整数是单个容器的请求大小(以字节为单位)。 请求的大小向上舍入为 512KB(专用日志)或 1MB(对于共享日志)的倍数。 如果舍入大小至少与现有容器大小相同,则 CLFS 将创建与现有容器大小相同的新容器。 成功返回时,此参数将接收现有容器大小。 如果舍入大小小于现有容器大小,ClfsAddLogContainerSet 失败。
[in] rguszContainerPath
指向 UNICODE_STRING 结构的数组的指针。 每个字符串都为其中一个新容器提供路径名称。 数组中的元素数由 cContainers提供。 给定路径可以是绝对路径,也可以是相对于基本日志文件的位置。 相对于基日志文件的路径必须以CLFS_CONTAINER_RELATIVE_PREFIX开头,即字符串文本(L“%BLF%\)。
返回值
ClfsAddLogContainer 如果成功,则返回STATUS_SUCCESS;否则,它将返回 Ntstatus.h 中定义的错误代码之一。
言论
容器是稳定存储上的连续范围。 例如,容器可以是磁盘上的连续文件。 日志是一组容器以及一个基本日志文件。 有关容器的详细信息,请参阅 CLFS 稳定存储。
由相对于基本日志文件的路径指定的容器必须与基本日志文件或基本日志文件的子目录位于同一目录中。 相对路径中不允许目录“.”和“.”。
日志可以具有一些具有绝对路径的容器以及具有相对路径的其他容器。
容器是在非压缩模式下创建的,并使用零初始化。
日志必须至少有两个容器,然后才能对它执行任何 I/O。
有关 CLFS 概念和术语的说明,请参阅 通用日志文件系统。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Server 2003 R2、Windows Vista 和更高版本的 Windows 中可用。 |
目标平台 | 桌面 |
标头 | wdm.h (包括 Wdm.h) |
库 | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |