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