clfsAddLogContainer 函数 (wdm.h)

ClfsAddLogContainer 例程将容器添加到 CLFS 日志。

语法

CLFSUSER_API NTSTATUS ClfsAddLogContainer(
  [in] PLOG_FILE_OBJECT plfoLog,
  [in] PULONGLONG       pcbContainer,
  [in] PUNICODE_STRING  puszContainerPath
);

参数

[in] plfoLog

指向 LOG_FILE_OBJECT 结构的指针,该结构表示将向其添加容器的日志。 调用方之前通过调用 ClfsCreateLogFile 获取了此指针。

[in] pcbContainer

指向 ULONGLONG 类型变量的指针。 此参数的角色取决于日志当前是否至少有一个容器。

  • 如果日志当前没有容器,则调用方将提供一个正整数,即新容器的请求大小(以字节为单位)。 CLFS 创建一个容器,该容器是专用日志) 的请求大小向上舍入为 512KB (的倍数,对于多路复用日志) 为 1MB (。
  • 如果日志当前至少有一个容器,并且此参数为 NULL 指针,则 CLFS 会创建一个与现有容器大小相同的新容器。 (日志中的所有容器的大小必须相同。)
  • 如果日志当前至少有一个容器,并且此参数是有效的指针,则调用方将提供一个正整数,即新容器的请求大小(以字节为单位)。 对于专用日志) ,请求的大小向上舍入为 512KB (的倍数,或多路复用日志) 的 1MB (。 如果向上舍入的大小至少与现有容器大小一样大,则 CLFS 会创建一个与现有容器大小相同的新容器。 成功返回后,此参数将接收现有容器大小。 如果向上舍入的大小小于现有容器大小, ClfsAddLogContainer 将失败。

[in] puszContainerPath

指向 UNICODE_STRING 结构的指针,该结构提供新容器的路径名称。 路径可以是绝对路径,也可以是相对于基本日志文件的位置。 相对于基本日志文件的路径必须以 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)
Library Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

另请参阅

ClfsAddLogContainerSet

ClfsRemoveLogContainer