ClfsMgmtHandleLogFileFull 函数 (wdm.h)

ClfsMgmtHandleLogFileFull 例程尝试在日志中提供更多空间。 它可能会通过向日志添加容器来提供更多空间,或者可能会要求客户端移动日志尾部。

语法

CLFSUSER_API NTSTATUS ClfsMgmtHandleLogFileFull(
  [in] CLFS_MGMT_CLIENT Client
);

参数

[in] Client

请求 CLFS 管理的客户端在日志中提供空间。 此参数的值应该是通过调用 ClfsMgmtRegisterManagedClient 例程获得的 CLFS_MGMT_CLIENT 结构。

返回值

ClfsMgmtHandleLogFileFull 例程返回以下 NTSTATUS 值之一:

返回代码 描述
STATUS_INVALID_PARAMETER 客户端不管理日志。
STATUS_INVALID_PARAMETER_1 Client 参数提供的值 NULL 或不表示有效的客户端。
STATUS_LOG_FULL_HANDLER_IN_PROGRESS CLFS 管理已尝试解析此客户端的日志文件完整条件。
STATUS_UNSUCCESSFUL CLFS 管理无法处理请求。
STATUS_PENDING CLFS 管理正在处理在日志中创建空间的请求。
STATUS_SUCCESS 请求的空间量在日志中可用。

言论

为了在日志中提供更多空间,ClfsMgmtHandleLogFileFull 例程会根据增长率、新容器大小和最大大小策略尝试将更多容器添加到日志中。 如果无法添加更多容器,则 ClfsMgmtHandleLogFileFull 例程尝试通过调用一个或多个客户端的 ClfsAdvanceTailCallback 函数来释放现有空间。

如果 ClfsMgmtHandleLogFileFull 例程返回STATUS_PENDING,则当请求在日志中腾出空间的请求完成时,将调用客户端的 ClfsLogGrowthCompleteCallback 函数。

如果 ClfsMgmtHandleLogFileFull 例程返回STATUS_LOG_FULL_HANDLER_IN_PROGRESS,则客户端已请求 CLFS 管理来处理日志文件完整条件。 客户端的 ClfsLogGrowthCompleteCallback 函数不会再次调用。

如果 ClfsMgmtHandleLogFileFull 例程返回STATUS_SUCCESS,则调用将同步完成,并且不会调用客户端的 ClfsLogGrowthCompleteCallback 函数。

如果 ClfsMgmtHandleLogFileFull 例程返回STATUS_PENDING,则 CLFS 管理正在尝试在日志中释放空间,并在处理日志文件完整条件时调用客户端的 ClfsLogGrowthCompleteCallback 函数。 如果固定日志,则 CLFS 管理将调用客户端的 ClfsLogGrowthCompleteCallback 函数,LogIsPinned 参数设置为 TRUEClfsMgmtHandleLogFileFull 例程返回STATUS_PENDING。

调用 clfsMgmtHandleLogFileFull 之前,可以调用客户端的 ClfsLogGrowthCompleteCallback 函数。

如果 ClfsMgmtHandleLogFileFull 例程返回STATUS_PENDING,则不应再次调用此客户端的 ClfsMgmtHandleLogFileFull 例程,直到调用客户端的 ClfsLogGrowthCompleteCallback 函数。

要求

要求 价值
目标平台 桌面
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
Clfs.lib
DLL Clfs.sys
IRQL IRQL <= APC_LEVEL

另请参阅

ClfsAdvanceTailCallback

ClfsLogGrowthCompleteCallback

ClfsMgmtRegisterManagedClient