You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

178 lines
4.7 KiB

6 years ago
  1. using System;
  2. namespace Microsoft.Win32.Security
  3. {
  4. [Flags]
  5. public enum AccessType : uint
  6. {
  7. DELETE = 0x00010000,
  8. READ_CONTROL = 0x00020000,
  9. WRITE_DAC = 0x00040000,
  10. WRITE_OWNER = 0x00080000,
  11. SYNCHRONIZE = 0x00100000,
  12. STANDARD_RIGHTS_REQUIRED = 0x000F0000,
  13. STANDARD_RIGHTS_READ = READ_CONTROL,
  14. STANDARD_RIGHTS_WRITE = READ_CONTROL,
  15. STANDARD_RIGHTS_EXECUTE = READ_CONTROL,
  16. STANDARD_RIGHTS_ALL = 0x001F0000,
  17. SPECIFIC_RIGHTS_ALL = 0x0000FFFF,
  18. //
  19. // AccessSystemAcl access type
  20. //
  21. ACCESS_SYSTEM_SECURITY = 0x01000000,
  22. //
  23. // MaximumAllowed access type
  24. //
  25. MAXIMUM_ALLOWED = 0x02000000,
  26. //
  27. // These are the generic rights.
  28. //
  29. GENERIC_READ = 0x80000000,
  30. GENERIC_WRITE = 0x40000000,
  31. GENERIC_EXECUTE = 0x20000000,
  32. GENERIC_ALL = 0x10000000,
  33. }
  34. [Flags]
  35. public enum TokenAccessType : uint
  36. {
  37. TOKEN_ASSIGN_PRIMARY = 0x0001,
  38. TOKEN_DUPLICATE = 0x0002,
  39. TOKEN_IMPERSONATE = 0x0004,
  40. TOKEN_QUERY = 0x0008,
  41. TOKEN_QUERY_SOURCE = 0x0010,
  42. TOKEN_ADJUST_PRIVILEGES = 0x0020,
  43. TOKEN_ADJUST_GROUPS = 0x0040,
  44. TOKEN_ADJUST_DEFAULT = 0x0080,
  45. TOKEN_ADJUST_SESSIONID = 0x0100,
  46. TOKEN_ALL_ACCESS =
  47. AccessType.STANDARD_RIGHTS_REQUIRED |
  48. TOKEN_ASSIGN_PRIMARY |
  49. TOKEN_DUPLICATE |
  50. TOKEN_IMPERSONATE |
  51. TOKEN_QUERY |
  52. TOKEN_QUERY_SOURCE |
  53. TOKEN_ADJUST_PRIVILEGES |
  54. TOKEN_ADJUST_GROUPS |
  55. TOKEN_ADJUST_DEFAULT |
  56. TOKEN_ADJUST_SESSIONID,
  57. TOKEN_READ =
  58. AccessType.STANDARD_RIGHTS_READ |
  59. TOKEN_QUERY,
  60. TOKEN_WRITE =
  61. AccessType.STANDARD_RIGHTS_WRITE |
  62. TOKEN_ADJUST_PRIVILEGES |
  63. TOKEN_ADJUST_GROUPS |
  64. TOKEN_ADJUST_DEFAULT,
  65. TOKEN_EXECUTE =
  66. AccessType.STANDARD_RIGHTS_EXECUTE,
  67. }
  68. [Flags]
  69. public enum ProcessAccessType : uint
  70. {
  71. DELETE = 0x00010000,
  72. READ_CONTROL = 0x00020000,
  73. WRITE_DAC = 0x00040000,
  74. WRITE_OWNER = 0x00080000,
  75. SYNCHRONIZE = 0x00100000,
  76. STANDARD_RIGHTS_REQUIRED = 0x000F0000,
  77. STANDARD_RIGHTS_READ = READ_CONTROL,
  78. STANDARD_RIGHTS_WRITE = READ_CONTROL,
  79. STANDARD_RIGHTS_EXECUTE = READ_CONTROL,
  80. STANDARD_RIGHTS_ALL = 0x001F0000,
  81. SPECIFIC_RIGHTS_ALL = 0x0000FFFF,
  82. //
  83. // AccessSystemAcl access type
  84. //
  85. ACCESS_SYSTEM_SECURITY = 0x01000000,
  86. //
  87. // MaximumAllowed access type
  88. //
  89. MAXIMUM_ALLOWED = 0x02000000,
  90. //
  91. // These are the generic rights.
  92. //
  93. GENERIC_READ = 0x80000000,
  94. GENERIC_WRITE = 0x40000000,
  95. GENERIC_EXECUTE = 0x20000000,
  96. GENERIC_ALL = 0x10000000,
  97. // PROCESS specific
  98. PROCESS_TERMINATE = 0x0001,
  99. PROCESS_CREATE_THREAD = 0x0002,
  100. PROCESS_SET_SESSIONID = 0x0004,
  101. PROCESS_VM_OPERATION = 0x0008,
  102. PROCESS_VM_READ = 0x0010,
  103. PROCESS_VM_WRITE = 0x0020,
  104. PROCESS_DUP_HANDLE = 0x0040,
  105. PROCESS_CREATE_PROCESS = 0x0080,
  106. PROCESS_SET_QUOTA = 0x0100,
  107. PROCESS_SET_INFORMATION = 0x0200,
  108. PROCESS_QUERY_INFORMATION = 0x0400,
  109. PROCESS_SUSPEND_RESUME = 0x0800,
  110. PROCESS_ALL_ACCESS =
  111. AccessType.STANDARD_RIGHTS_REQUIRED |
  112. AccessType.SYNCHRONIZE |
  113. 0xFFF,
  114. }
  115. [Flags]
  116. public enum PrivilegeAttributes : uint
  117. {
  118. /*
  119. SE_PRIVILEGE_DISABLED = 0,
  120. SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001,
  121. SE_PRIVILEGE_ENABLED = 0x00000002,
  122. SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000,
  123. */
  124. Disabled = 0,
  125. EnabledByDefault = 0x00000001,
  126. Enabled = 0x00000002,
  127. UsedForAccess = 0x80000000,
  128. }
  129. [Flags]
  130. public enum SecurityDescriptorControlFlags : ushort // WORD
  131. {
  132. SE_OWNER_DEFAULTED = 0x0001,
  133. SE_GROUP_DEFAULTED = 0x0002,
  134. SE_DACL_PRESENT = 0x0004,
  135. SE_DACL_DEFAULTED = 0x0008,
  136. SE_SACL_PRESENT = 0x0010,
  137. SE_SACL_DEFAULTED = 0x0020,
  138. SE_DACL_AUTO_INHERIT_REQ = 0x0100,
  139. SE_SACL_AUTO_INHERIT_REQ = 0x0200,
  140. SE_DACL_AUTO_INHERITED = 0x0400,
  141. SE_SACL_AUTO_INHERITED = 0x0800,
  142. SE_DACL_PROTECTED = 0x1000,
  143. SE_SACL_PROTECTED = 0x2000,
  144. SE_RM_CONTROL_VALID = 0x4000,
  145. SE_SELF_RELATIVE = 0x8000,
  146. }
  147. }