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) |
库 | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |