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 参数设置为 TRUE,ClfsMgmtHandleLogFileFull 例程返回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 |