Export (0) Print
Expand All

ClfsMgmtHandleLogFileFull routine

The ClfsMgmtHandleLogFileFull routine attempts to make more space available in a log. It might make more space available by adding containers to the log, or it might ask clients to move their log tails.

Syntax


NTSTATUS ClfsMgmtHandleLogFileFull(
  _In_  CLFS_MGMT_CLIENT Client
);

Parameters

Client [in]

The client that is requesting CLFS management to make space available in the log. The value of this parameter should be the CLFS_MGMT_CLIENT structure that is obtained through a call to the ClfsMgmtRegisterManagedClient routine.

Return value

The ClfsMgmtHandleLogFileFull routine returns one of the following NTSTATUS values:

Return codeDescription
STATUS_INVALID_PARAMETER

The client is not managing a log.

STATUS_INVALID_PARAMETER_1

The value that was supplied for the Client parameter either was NULL or does not represent a valid client.

STATUS_LOG_FULL_HANDLER_IN_PROGRESS

CLFS management is already attempting to resolve a log file full condition for this client.

STATUS_UNSUCCESSFUL

CLFS management was not able to process the request.

STATUS_PENDING

CLFS management is processing the request to create space in the log.

STATUS_SUCCESS

The requested amount of space is available in the log.

 

Remarks

To make more space available in the log, the ClfsMgmtHandleLogFileFull routine first tries to add more containers to the log in accordance with the growth rate, new container size, and maximum size policies. If more containers cannot be added, then the ClfsMgmtHandleLogFileFull routine tries to free existing space by invoking one or more clients' ClfsAdvanceTailCallback functions.

If the ClfsMgmtHandleLogFileFull routine returns STATUS_PENDING, the client's ClfsLogGrowthCompleteCallback function will be called when the request to make space in the log has been completed.

If the ClfsMgmtHandleLogFileFull routine returns STATUS_LOG_FULL_HANDLER_IN_PROGRESS, the client has already requested CLFS management to handle a log file full condition. The client's ClfsLogGrowthCompleteCallback function will not be called a second time.

If the ClfsMgmtHandleLogFileFull routine returns STATUS_SUCCESS, the call completed synchronously, and the client's ClfsLogGrowthCompleteCallback function will not be invoked.

If the ClfsMgmtHandleLogFileFull routine returns STATUS_PENDING, then CLFS management is in the process of trying to free space in the log, and will call the client's ClfsLogGrowthCompleteCallback function when the log file full condition has been handled. If the log is pinned, CLFS management will call the client's ClfsLogGrowthCompleteCallback function with the LogIsPinned parameter set to TRUE before the ClfsMgmtHandleLogFileFull routine returns STATUS_PENDING.

Important   It is possible that the client's ClfsLogGrowthCompleteCallback function could be called before the call to ClfsMgmtHandleLogFileFull returns.

Important   If the ClfsMgmtHandleLogFileFull routine returns STATUS_PENDING, you should not call the ClfsMgmtHandleLogFileFull routine again for this client until the client's ClfsLogGrowthCompleteCallback function has been called.

Requirements

Version

Available in Windows Server 2003 R2, Windows Vista, and later versions of Windows.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

Clfs.lib

IRQL

<= APC_LEVEL

See also

ClfsMgmtRegisterManagedClient
ClfsAdvanceTailCallback
ClfsLogGrowthCompleteCallback

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft