clfsmgmt.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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. typedef enum _CLFS_MGMT_POLICY_TYPE {
  13. ClfsMgmtPolicyMaximumSize = 0x0,
  14. ClfsMgmtPolicyMinimumSize = 0x1,
  15. ClfsMgmtPolicyNewContainerSize = 0x2,
  16. ClfsMgmtPolicyGrowthRate = 0x3,
  17. ClfsMgmtPolicyLogTail = 0x4,
  18. ClfsMgmtPolicyAutoShrink = 0x5,
  19. ClfsMgmtPolicyAutoGrow = 0x6,
  20. ClfsMgmtPolicyNewContainerPrefix = 0x7,
  21. ClfsMgmtPolicyNewContainerSuffix = 0x8,
  22. ClfsMgmtPolicyNewContainerExtension = 9,
  23. ClfsMgmtPolicyInvalid = 10
  24. } CLFS_MGMT_POLICY_TYPE, *PCLFS_MGMT_POLICY_TYPE;
  25. typedef enum _CLFS_MGMT_NOTIFICATION_TYPE {
  26. ClfsMgmtAdvanceTailNotification = 0,
  27. ClfsMgmtLogFullHandlerNotification,
  28. ClfsMgmtLogUnpinnedNotification,
  29. ClfsMgmtLogWriteNotification
  30. } CLFS_MGMT_NOTIFICATION_TYPE;
  31. typedef struct _CLFS_MGMT_NOTIFICATION {
  32. CLFS_MGMT_NOTIFICATION_TYPE Notification;
  33. CLFS_LSN Lsn;
  34. USHORT LogIsPinned;
  35. } CLFS_MGMT_NOTIFICATION, *PCLFS_MGMT_NOTIFICATION;
  36. typedef struct _CLFS_MGMT_POLICY {
  37. ULONG Version;
  38. ULONG LengthInBytes;
  39. ULONG PolicyFlags;
  40. CLFS_MGMT_POLICY_TYPE PolicyType;
  41. union {
  42. struct {
  43. ULONG Containers;
  44. } MaximumSize;
  45. struct {
  46. ULONG Containers;
  47. } MinimumSize;
  48. struct {
  49. ULONG SizeInBytes;
  50. } NewContainerSize;
  51. struct {
  52. ULONG AbsoluteGrowthInContainers;
  53. ULONG RelativeGrowthPercentage;
  54. } GrowthRate;
  55. struct {
  56. ULONG MinimumAvailablePercentage;
  57. ULONG MinimumAvailableContainers;
  58. } LogTail;
  59. struct {
  60. ULONG Percentage;
  61. } AutoShrink;
  62. struct {
  63. ULONG Enabled;
  64. } AutoGrow;
  65. struct {
  66. USHORT PrefixLengthInBytes;
  67. WCHAR PrefixString[1];
  68. } NewContainerPrefix;
  69. struct {
  70. ULONGLONG NextContainerSuffix;
  71. } NewContainerSuffix;
  72. struct {
  73. USHORT ExtensionLengthInBytes;
  74. WCHAR ExtensionString[1];
  75. } NewContainerExtension;
  76. } PolicyParameters;
  77. } CLFS_MGMT_POLICY, *PCLFS_MGMT_POLICY;
  78. /* Conflict with CLFS_MGMT_POLICY_TYPE
  79. typedef struct _ClfsMgmtPolicyAutoGrow {
  80. ULONG Enabled;
  81. } ClfsMgmtPolicyAutoGrow;
  82. typedef struct _ClfsMgmtPolicyAutoShrink {
  83. ULONG Percentage;
  84. } ClfsMgmtPolicyAutoShrink;
  85. typedef struct _ClfsMgmtPolicyGrowthRate {
  86. ULONG AbsoluteGrowthInContainers;
  87. ULONG RelativeGrowthPercentage;
  88. } ClfsMgmtPolicyGrowthRate;
  89. typedef struct _ClfsMgmtPolicyLogTail {
  90. ULONG MinimumAvailablePercentage;
  91. ULONG MinimumAvailableContainers;
  92. } ClfsMgmtPolicyLogTail;
  93. typedef struct _ClfsMgmtPolicyMinimumSize {
  94. ULONG Containers;
  95. } ClfsMgmtPolicyMinimumSize;
  96. typedef struct _ClfsMgmtPolicyMaximumSize {
  97. ULONG Containers;
  98. } ClfsMgmtPolicyMaximumSize;
  99. typedef struct _ClfsMgmtPolicyNewContainerExtension {
  100. ULONG ExtensionLengthInBytes;
  101. WCHAR ExtensionString[1];
  102. } ClfsMgmtPolicyNewContainerExtension, *PClfsMgmtPolicyNewContainerExtension;
  103. typedef struct _ClfsMgmtPolicyNewContainerPrefix {
  104. USHORT PrefixLengthInBytes;
  105. WCHAR PrefixString[1];
  106. } ClfsMgmtPolicyNewContainerPrefix;
  107. typedef struct _ClfsMgmtPolicyNewContainerSize {
  108. ULONG SizeInBytes;
  109. } ClfsMgmtPolicyNewContainerSize;
  110. typedef struct _ClfsMgmtPolicyNewContainerSuffix {
  111. ULONGLONG NextContainerSuffix;
  112. } ClfsMgmtPolicyNewContainerSuffix, *PClfsMgmtPolicyNewContainerSuffix;
  113. */
  114. #ifdef __cplusplus
  115. }
  116. #endif
  117. #endif /*(_WIN32_WINNT >= 0x0600)*/
  118. #endif /*_INC_CLFSMGMT*/