clfsMgmtSetLogFileSize 函数 (wdm.h)
ClfsMgmtSetLogFileSize 例程将容器添加到日志或从日志中删除容器。
语法
CLFSUSER_API NTSTATUS ClfsMgmtSetLogFileSize(
[in] PLOG_FILE_OBJECT LogFile,
[in] PULONGLONG NewSizeInContainers,
[out] PULONGLONG ResultingSizeInContainers,
[in, optional] PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK CompletionRoutine,
[in, optional] PVOID CompletionRoutineData
);
参数
[in] LogFile
指向 LOG_FILE_OBJECT 结构的指针,该结构表示要添加或删除容器的 CLFS 日志或日志中的流。
[in] NewSizeInContainers
指向请求的日志大小的指针。 调用方将此参数设置为以下值之一。
值 | 含义 |
---|---|
0 |
强制实施最小大小策略。 有关此策略的详细信息,请参阅 ClfsMgmtInstallPolicy。
如果未安装最小大小策略,则会发生以下情况之一:
|
1 | 无效值。 调用失败并返回STATUS_INVALID_VALUE。 |
2 到 1023 |
所需的日志大小,以容器数表示。
如果此数目小于已安装策略指定的最小容器数,则调用将失败并ERROR_COULD_NOT_RESIZE_LOG。 如果此数字大于已安装策略指定的最大容器数,日志将仅扩展到策略指定的最大容器数,并且调用成功且没有错误。 |
1024 到 MAXULONGLONG |
如果未安装最大大小策略,调用将失败并返回ERROR_LOG_POLICY_CONFLICT。
如果安装了最大大小策略,日志将扩展到由最大大小策略指定的最大容器数,并且调用成功且没有错误。 |
若要确定实际日志大小(可能与请求的大小不同),请使用 ResultingSizeInContainers 参数。
[out] ResultingSizeInContainers
指向生成的日志大小的指针。 如果成功,例程会将日志的实际大小(以日志中的容器数表示)写入此参数指向的位置。
[in, optional] CompletionRoutine
未使用。 设置为 NULL。
[in, optional] CompletionRoutineData
未使用。 设置为 NULL。
返回值
ClfsMgmtSetLogFileSize 例程返回以下 NTSTATUS 值之一:
返回代码 | 说明 |
---|---|
|
已设置日志文件大小。 ResultingSizeInContainers 参数包含日志的当前大小。 |
|
CLFS 管理无法设置日志文件大小。 |
|
LogFile 参数的值为 NULL,或者 NewSizeInContainers 参数的内容为 1。 |
|
NewSizeInContainers 参数的值为 NULL。 |
|
日志的最大大小和最小大小策略之间存在冲突。 |
|
CLFS 管理无法删除足够的容器来访问 NewSizeInContainers。 |
|
CLFS 管理无法向日志添加足够的容器来访问 NewSizeInContainers。 这可能是由于与客户端设置的策略冲突。 |
此例程还可能返回其他 NTSTATUS 值。
注解
ClfsMgmtSetLogFileSize 例程通常仅在客户端启动或停止时才使用。 不要从 ClfsAdvanceTailCallback 函数中调用 ClfsMgmtSetLogFileSize 例程。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Server 2003 R2 和 Windows Vista 开始可用。 |
目标平台 | 桌面 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |