Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_CLFSMGMT
      7 #define _INC_CLFSMGMT
      8 #if (_WIN32_WINNT >= 0x0600)
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13 typedef enum _CLFS_MGMT_POLICY_TYPE {
     14   ClfsMgmtPolicyMaximumSize             = 0x0,
     15   ClfsMgmtPolicyMinimumSize             = 0x1,
     16   ClfsMgmtPolicyNewContainerSize        = 0x2,
     17   ClfsMgmtPolicyGrowthRate              = 0x3,
     18   ClfsMgmtPolicyLogTail                 = 0x4,
     19   ClfsMgmtPolicyAutoShrink              = 0x5,
     20   ClfsMgmtPolicyAutoGrow                = 0x6,
     21   ClfsMgmtPolicyNewContainerPrefix      = 0x7,
     22   ClfsMgmtPolicyNewContainerSuffix      = 0x8,
     23   ClfsMgmtPolicyNewContainerExtension   = 9,
     24   ClfsMgmtPolicyInvalid                 = 10
     25 } CLFS_MGMT_POLICY_TYPE, *PCLFS_MGMT_POLICY_TYPE;
     26 
     27 typedef enum _CLFS_MGMT_NOTIFICATION_TYPE {
     28   ClfsMgmtAdvanceTailNotification = 0,
     29   ClfsMgmtLogFullHandlerNotification,
     30   ClfsMgmtLogUnpinnedNotification,
     31   ClfsMgmtLogWriteNotification
     32 } CLFS_MGMT_NOTIFICATION_TYPE;
     33 
     34 typedef struct _CLFS_MGMT_NOTIFICATION {
     35   CLFS_MGMT_NOTIFICATION_TYPE Notification;
     36   CLFS_LSN                    Lsn;
     37   USHORT                      LogIsPinned;
     38 } CLFS_MGMT_NOTIFICATION, *PCLFS_MGMT_NOTIFICATION;
     39 
     40 typedef struct _CLFS_MGMT_POLICY {
     41   ULONG Version;
     42   ULONG LengthInBytes;
     43   ULONG PolicyFlags;
     44   CLFS_MGMT_POLICY_TYPE PolicyType;
     45   union {
     46     struct {
     47       ULONG Containers;
     48     } MaximumSize;
     49     struct {
     50       ULONG Containers;
     51     } MinimumSize;
     52     struct {
     53       ULONG SizeInBytes;
     54     } NewContainerSize;
     55     struct {
     56       ULONG AbsoluteGrowthInContainers;
     57       ULONG RelativeGrowthPercentage;
     58     } GrowthRate;
     59     struct {
     60       ULONG MinimumAvailablePercentage;
     61       ULONG MinimumAvailableContainers;
     62     } LogTail;
     63     struct {
     64       ULONG Percentage;
     65     } AutoShrink;
     66     struct {
     67       ULONG Enabled;
     68     } AutoGrow;
     69     struct {
     70       USHORT PrefixLengthInBytes;
     71       WCHAR PrefixString[1];
     72     } NewContainerPrefix;
     73     struct {
     74       ULONGLONG NextContainerSuffix;
     75     } NewContainerSuffix;
     76     struct {
     77       USHORT ExtensionLengthInBytes;
     78       WCHAR ExtensionString[1];
     79     } NewContainerExtension;
     80   } PolicyParameters;
     81 } CLFS_MGMT_POLICY,  *PCLFS_MGMT_POLICY;
     82 
     83 /* Conflict with CLFS_MGMT_POLICY_TYPE
     84 typedef struct _ClfsMgmtPolicyAutoGrow {
     85   ULONG Enabled;
     86 } ClfsMgmtPolicyAutoGrow;
     87 
     88 typedef struct _ClfsMgmtPolicyAutoShrink {
     89   ULONG Percentage;
     90 } ClfsMgmtPolicyAutoShrink;
     91 
     92 typedef struct _ClfsMgmtPolicyGrowthRate {
     93   ULONG AbsoluteGrowthInContainers;
     94   ULONG RelativeGrowthPercentage;
     95 } ClfsMgmtPolicyGrowthRate;
     96 
     97 typedef struct _ClfsMgmtPolicyLogTail {
     98   ULONG MinimumAvailablePercentage;
     99   ULONG MinimumAvailableContainers;
    100 } ClfsMgmtPolicyLogTail;
    101 
    102 typedef struct _ClfsMgmtPolicyMinimumSize {
    103   ULONG Containers;
    104 } ClfsMgmtPolicyMinimumSize;
    105 
    106 typedef struct _ClfsMgmtPolicyMaximumSize {
    107   ULONG Containers;
    108 } ClfsMgmtPolicyMaximumSize;
    109 
    110 typedef struct _ClfsMgmtPolicyNewContainerExtension {
    111   ULONG ExtensionLengthInBytes;
    112   WCHAR ExtensionString[1];
    113 } ClfsMgmtPolicyNewContainerExtension, *PClfsMgmtPolicyNewContainerExtension;
    114 
    115 typedef struct _ClfsMgmtPolicyNewContainerPrefix {
    116   USHORT PrefixLengthInBytes;
    117   WCHAR  PrefixString[1];
    118 } ClfsMgmtPolicyNewContainerPrefix;
    119 
    120 typedef struct _ClfsMgmtPolicyNewContainerSize {
    121   ULONG SizeInBytes;
    122 } ClfsMgmtPolicyNewContainerSize;
    123 
    124 typedef struct _ClfsMgmtPolicyNewContainerSuffix {
    125   ULONGLONG NextContainerSuffix;
    126 } ClfsMgmtPolicyNewContainerSuffix, *PClfsMgmtPolicyNewContainerSuffix;
    127 */
    128 #ifdef __cplusplus
    129 }
    130 #endif
    131 #endif /*(_WIN32_WINNT >= 0x0600)*/
    132 #endif /*_INC_CLFSMGMT*/
    133