text: /**
   * This file has no copyright assigned and is placed in the Public Domain.
   * This file is part of the mingw-w64 runtime package.
   * No warranty is given; refer to the file DISCLAIMER.PD within this package.
   */
  #ifndef _INC_CLFSMGMT
  #define _INC_CLFSMGMT
  #if (_WIN32_WINNT >= 0x0600)
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  typedef enum _CLFS_MGMT_POLICY_TYPE {
    ClfsMgmtPolicyMaximumSize             = 0x0,
    ClfsMgmtPolicyMinimumSize             = 0x1,
    ClfsMgmtPolicyNewContainerSize        = 0x2,
    ClfsMgmtPolicyGrowthRate              = 0x3,
    ClfsMgmtPolicyLogTail                 = 0x4,
    ClfsMgmtPolicyAutoShrink              = 0x5,
    ClfsMgmtPolicyAutoGrow                = 0x6,
    ClfsMgmtPolicyNewContainerPrefix      = 0x7,
    ClfsMgmtPolicyNewContainerSuffix      = 0x8,
    ClfsMgmtPolicyNewContainerExtension   = 9,
    ClfsMgmtPolicyInvalid                 = 10
  } CLFS_MGMT_POLICY_TYPE, *PCLFS_MGMT_POLICY_TYPE;
  
  typedef enum _CLFS_MGMT_NOTIFICATION_TYPE {
    ClfsMgmtAdvanceTailNotification = 0,
    ClfsMgmtLogFullHandlerNotification,
    ClfsMgmtLogUnpinnedNotification,
    ClfsMgmtLogWriteNotification
  } CLFS_MGMT_NOTIFICATION_TYPE;
  
  typedef struct _CLFS_MGMT_NOTIFICATION {
    CLFS_MGMT_NOTIFICATION_TYPE Notification;
    CLFS_LSN                    Lsn;
    USHORT                      LogIsPinned;
  } CLFS_MGMT_NOTIFICATION, *PCLFS_MGMT_NOTIFICATION;
  
  typedef struct _CLFS_MGMT_POLICY {
    ULONG Version;
    ULONG LengthInBytes;
    ULONG PolicyFlags;
    CLFS_MGMT_POLICY_TYPE PolicyType;
    union {
      struct {
        ULONG Containers;
      } MaximumSize;
      struct {
        ULONG Containers;
      } MinimumSize;
      struct {
        ULONG SizeInBytes;
      } NewContainerSize;
      struct {
        ULONG AbsoluteGrowthInContainers;
        ULONG RelativeGrowthPercentage;
      } GrowthRate;
      struct {
        ULONG MinimumAvailablePercentage;
        ULONG MinimumAvailableContainers;
      } LogTail;
      struct {
        ULONG Percentage;
      } AutoShrink;
      struct {
        ULONG Enabled;
      } AutoGrow;
      struct {
        USHORT PrefixLengthInBytes;
        WCHAR PrefixString[1];
      } NewContainerPrefix;
      struct {
        ULONGLONG NextContainerSuffix;
      } NewContainerSuffix;
      struct {
        USHORT ExtensionLengthInBytes;
        WCHAR ExtensionString[1];
      } NewContainerExtension;
    } PolicyParameters;
  } CLFS_MGMT_POLICY,  *PCLFS_MGMT_POLICY;
  
  /* Conflict with CLFS_MGMT_POLICY_TYPE
  typedef struct _ClfsMgmtPolicyAutoGrow {
    ULONG Enabled;
  } ClfsMgmtPolicyAutoGrow;
  
  typedef struct _ClfsMgmtPolicyAutoShrink {
    ULONG Percentage;
  } ClfsMgmtPolicyAutoShrink;
  
  typedef struct _ClfsMgmtPolicyGrowthRate {
    ULONG AbsoluteGrowthInContainers;
    ULONG RelativeGrowthPercentage;
  } ClfsMgmtPolicyGrowthRate;
  
  typedef struct _ClfsMgmtPolicyLogTail {
    ULONG MinimumAvailablePercentage;
    ULONG MinimumAvailableContainers;
  } ClfsMgmtPolicyLogTail;
  
  typedef struct _ClfsMgmtPolicyMinimumSize {
    ULONG Containers;
  } ClfsMgmtPolicyMinimumSize;
  
  typedef struct _ClfsMgmtPolicyMaximumSize {
    ULONG Containers;
  } ClfsMgmtPolicyMaximumSize;
  
  typedef struct _ClfsMgmtPolicyNewContainerExtension {
    ULONG ExtensionLengthInBytes;
    WCHAR ExtensionString[1];
  } ClfsMgmtPolicyNewContainerExtension, *PClfsMgmtPolicyNewContainerExtension;
  
  typedef struct _ClfsMgmtPolicyNewContainerPrefix {
    USHORT PrefixLengthInBytes;
    WCHAR  PrefixString[1];
  } ClfsMgmtPolicyNewContainerPrefix;
  
  typedef struct _ClfsMgmtPolicyNewContainerSize {
    ULONG SizeInBytes;
  } ClfsMgmtPolicyNewContainerSize;
  
  typedef struct _ClfsMgmtPolicyNewContainerSuffix {
    ULONGLONG NextContainerSuffix;
  } ClfsMgmtPolicyNewContainerSuffix, *PClfsMgmtPolicyNewContainerSuffix;
  */
  #ifdef __cplusplus
  }
  #endif
  #endif /*(_WIN32_WINNT >= 0x0600)*/
  #endif /*_INC_CLFSMGMT*/
  