| /** | |
| * 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*/ |