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 管理将在 ClfsMgmtHandleLogFileFull 例程返回STATUS_PENDING之前调用客户端的 ClfsLogGrowthCompleteCallback 函数,并将 LogIsPinned 参数设置为 TRUE

在返回对 ClfsMgmtHandleLogFileFull 的调用之前,可能会调用客户端的 ClfsLogGrowthCompleteCallback 函数。

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

要求

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

另请参阅

ClfsAdvanceTailCallback

ClfsLogGrowthCompleteCallback

ClfsMgmtRegisterManagedClient