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

如果未安装最小大小策略,则会发生以下情况之一:

  • 如果日志当前包含的容器少于 2 个,日志将扩展为 2 个容器的大小。
  • 如果日志当前有 2 个或更多个容器,则不会进行任何更改,并且调用成功。
如果安装了最小大小策略,则会发生以下情况之一:
  • 如果日志当前包含的容器数小于最小大小策略指定的最小容器数,则日志将扩展到策略指定的最小容器数。
  • 如果日志中的容器数大于或等于最小大小策略指定的最小容器数,则不会进行更改,并且调用成功且不会出错。
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 值之一:

返回代码 说明
STATUS_SUCCESS
已设置日志文件大小。 ResultingSizeInContainers 参数包含日志的当前大小。
STATUS_UNSUCCESSFUL
CLFS 管理无法设置日志文件大小。
STATUS_INVALID_PARAMETER_1
LogFile 参数的值为 NULL,或者 NewSizeInContainers 参数的内容为 1。
STATUS_INVALID_PARAMETER_2
NewSizeInContainers 参数的值为 NULL
STATUS_LOG_POLICY_INVALID
日志的最大大小和最小大小策略之间存在冲突。
STATUS_COULD_NOT_RESIZE_LOG
CLFS 管理无法删除足够的容器来访问 NewSizeInContainers
STATUS_LOG_POLICY_CONFLICT
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

另请参阅

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy