AddLogContainerSet 函数 (clfsw32.h)
如果调用进程有权访问日志句柄,则向与日志句柄关联的物理日志添加多个日志容器。 添加容器允许客户端增加日志的大小。
语法
CLFSUSER_API BOOL AddLogContainerSet(
[in] HANDLE hLog,
[in] USHORT cContainer,
[in, optional] PULONGLONG pcbContainer,
[in] LPWSTR *rgwszContainerPath,
[in, out, optional] LPVOID pReserved
);
参数
[in] hLog
从具有添加日志容器的权限的 CreateLogFile 获取的打开日志的句柄。
文件可以是专用的,也可以是多路复用的。
[in] cContainer
rgwszContainerPath 数组中的容器数。
此值必须为非零值。 日志必须至少有两个容器,然后才能对日志执行任何 I/O。
[in, optional] pcbContainer
容器的大小(以字节为单位)。
正常日志的最小大小为 512 KB,多路复用日志的最小大小为 1024 KB。 最大大小约为 4 GB (GB) 。
如果将容器添加到新创建的日志,则此参数是必需的。 如果已创建容器,此参数可以是 NULL,也可以是至少与第一个容器的大小一样大的值。
日志容器大小是日志区域大小的倍数, (512 KB) 。 将容器添加到新文件时, AddLogContainer 函数会将容器的大小舍入到下一个 512 KB 边界,并在 由 dpcContainer 指向的值中返回该大小。
同样,如果日志已具有至少一个容器,并且 *b.dcontainer 的值至少与当前容器大小一样大,则 函数将创建具有当前内部大小的所有容器,并在 *ddContainer 中返回该大小。
[in] rgwszContainerPath
容器的 cContainer 路径名称的数组。
数组中的每个元素都是一个宽字符字符串,其中包含日志卷中新容器的有效路径。
[in, out, optional] pReserved
保留。 将 “保留” 设置为 NULL。
返回值
如果函数成功,则返回值为非零,指示所有容器已成功添加到日志。
如果函数失败,则返回值为零,指示不添加任何容器。 要获得更多的错误信息,请调用 GetLastError。
以下列表标识了可能的错误代码:
注解
AddLogContainerSet 函数不是原子函数。 例如,如果操作因路径名称无效而中断,则对 AddLogContainerSet 的调用将返回失败,但某些容器可能已创建。 应用程序必须从此错误中恢复,例如,通过确定添加了哪些容器。
由于 AddLogContainerSet 添加多个容器,因此它比重复调用 AddLogContainer 更高效,后者仅添加一个容器。
容器在非压缩模式下创建和打开,并在创建容器时使用 0 (零初始化) 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | clfsw32.h |
Library | Clfsw32.lib |
DLL | Clfsw32.dll |