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 |