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