将多个日志容器添加到与日志句柄关联的物理日志(如果调用进程有权访问日志句柄)。 添加容器允许客户端增加日志的大小。
Syntax
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 边界,并返回 由号Container 指向的值中的该大小。
同样,如果日志中已有至少一个容器, 并且 *bpmContainer 的值至少与当前容器大小一样大,该函数将创建具有当前内部大小的所有容器,并在 *bpmContainer 中返回该大小。
[in] rgwszContainerPath
容器 的 cContainer 路径名称数组。
数组中的每个元素都是一个宽字符字符串,其中包含日志卷中新容器的有效路径。
[in, out, optional] pReserved
预留。 设置为NULL。
返回值
如果函数成功,则返回值为非零值,表示所有容器都已成功添加到日志中。
如果函数失败,则返回值为零,指示未添加任何容器。 若要获取扩展的错误信息,请调用 GetLastError。
以下列表标识可能的错误代码:
注解
AddLogContainerSet 函数不是原子函数。 例如,如果作被无效的路径名称中断,则对 AddLogContainerSet 的调用将返回失败,但某些容器可能已创建。 例如,应用程序必须通过确定添加的容器来从此错误中恢复。
由于 AddLogContainerSet 添加了多个容器,因此它比对 AddLogContainer 进行重复调用更有效,后者只添加一个容器。
容器在非压缩模式下创建和打开,并在创建容器时使用 0(零)进行初始化。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2003 R2 [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | clfsw32.h |
| Library | Clfsw32.lib |
| DLL | Clfsw32.dll |