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