adtgen.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER within this package.
  4. */
  5. #include <winapifamily.h>
  6. #ifndef _ADTGEN_H
  7. #define _ADTGEN_H
  8. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  9. #define AUDIT_TYPE_LEGACY 1
  10. #define AUDIT_TYPE_WMI 2
  11. typedef enum _AUDIT_PARAM_TYPE {
  12. APT_None = 1,
  13. APT_String,
  14. APT_Ulong,
  15. APT_Pointer,
  16. APT_Sid,
  17. APT_LogonId,
  18. APT_ObjectTypeList,
  19. APT_Luid,
  20. APT_Guid,
  21. APT_Time,
  22. APT_Int64,
  23. APT_IpAddress,
  24. APT_LogonIdWithSid
  25. } AUDIT_PARAM_TYPE;
  26. #define AP_ParamTypeBits 8
  27. #define AP_ParamTypeMask __MSABI_LONG(0xff)
  28. #define AP_FormatHex (__MSABI_LONG(0x1) << AP_ParamTypeBits)
  29. #define AP_AccessMask (__MSABI_LONG(0x2) << AP_ParamTypeBits)
  30. #define AP_Filespec (__MSABI_LONG(0x1) << AP_ParamTypeBits)
  31. #define AP_SidAsLogonId (__MSABI_LONG(0x1) << AP_ParamTypeBits)
  32. #define AP_PrimaryLogonId (__MSABI_LONG(0x1) << AP_ParamTypeBits)
  33. #define AP_ClientLogonId (__MSABI_LONG(0x2) << AP_ParamTypeBits)
  34. #define ApExtractType(TypeFlags) ((AUDIT_PARAM_TYPE) (TypeFlags & AP_ParamTypeMask))
  35. #define ApExtractFlags(TypeFlags) ((TypeFlags & ~AP_ParamTypeMask))
  36. #define _AUTHZ_SS_MAXSIZE 128
  37. #define APF_AuditFailure 0x0
  38. #define APF_AuditSuccess 0x1
  39. #define APF_ValidFlags (APF_AuditSuccess)
  40. #define AUTHZ_ALLOW_MULTIPLE_SOURCE_INSTANCES 0x1
  41. #define AUTHZ_MIGRATED_LEGACY_PUBLISHER 0x2
  42. #define AUTHZ_AUDIT_INSTANCE_INFORMATION 0x2
  43. typedef struct _AUDIT_OBJECT_TYPE {
  44. GUID ObjectType;
  45. USHORT Flags;
  46. USHORT Level;
  47. ACCESS_MASK AccessMask;
  48. } AUDIT_OBJECT_TYPE,*PAUDIT_OBJECT_TYPE;
  49. typedef struct _AUDIT_OBJECT_TYPES {
  50. USHORT Count;
  51. USHORT Flags;
  52. #ifdef __WIDL__
  53. [size_is (Count)]
  54. #endif
  55. AUDIT_OBJECT_TYPE *pObjectTypes;
  56. } AUDIT_OBJECT_TYPES,*PAUDIT_OBJECT_TYPES;
  57. typedef struct _AUDIT_IP_ADDRESS {
  58. BYTE pIpAddress[_AUTHZ_SS_MAXSIZE];
  59. } AUDIT_IP_ADDRESS,*PAUDIT_IP_ADDRESS;
  60. typedef struct _AUDIT_PARAM {
  61. AUDIT_PARAM_TYPE Type;
  62. ULONG Length;
  63. DWORD Flags;
  64. #ifdef __WIDL__
  65. [switch_type (AUDIT_PARAM_TYPE), switch_is (Type)]
  66. #else
  67. __C89_NAMELESS
  68. #endif
  69. union {
  70. #ifdef __WIDL__
  71. [default]
  72. #endif
  73. ULONG_PTR Data0;
  74. #ifdef __WIDL__
  75. [case (APT_String)]
  76. [string]
  77. #endif
  78. PWSTR String;
  79. #ifdef __WIDL__
  80. [case (APT_Ulong, APT_Pointer)]
  81. #endif
  82. ULONG_PTR u;
  83. #ifdef __WIDL__
  84. [case (APT_Sid)]
  85. #endif
  86. SID *psid;
  87. #ifdef __WIDL__
  88. [case (APT_Guid)]
  89. #endif
  90. GUID *pguid;
  91. #ifdef __WIDL__
  92. [case (APT_LogonId)]
  93. #endif
  94. ULONG LogonId_LowPart;
  95. #ifdef __WIDL__
  96. [case (APT_ObjectTypeList)]
  97. #endif
  98. AUDIT_OBJECT_TYPES *pObjectTypes;
  99. #ifdef __WIDL__
  100. [case (APT_IpAddress)]
  101. #endif
  102. AUDIT_IP_ADDRESS *pIpAddress;
  103. };
  104. #ifdef __WIDL__
  105. [switch_type (AUDIT_PARAM_TYPE), switch_is (Type)]
  106. #else
  107. __C89_NAMELESS
  108. #endif
  109. union {
  110. #ifdef __WIDL__
  111. [default]
  112. #endif
  113. ULONG_PTR Data1;
  114. #ifdef __WIDL__
  115. [case (APT_LogonId)]
  116. #endif
  117. LONG LogonId_HighPart;
  118. };
  119. } AUDIT_PARAM,*PAUDIT_PARAM;
  120. typedef struct _AUDIT_PARAMS {
  121. ULONG Length;
  122. DWORD Flags;
  123. USHORT Count;
  124. #ifdef __WIDL__
  125. [size_is (Count)]
  126. #endif
  127. AUDIT_PARAM *Parameters;
  128. } AUDIT_PARAMS,*PAUDIT_PARAMS;
  129. typedef struct _AUTHZ_AUDIT_EVENT_TYPE_LEGACY {
  130. USHORT CategoryId;
  131. USHORT AuditId;
  132. USHORT ParameterCount;
  133. } AUTHZ_AUDIT_EVENT_TYPE_LEGACY,*PAUTHZ_AUDIT_EVENT_TYPE_LEGACY;
  134. typedef
  135. #ifdef __WIDL__
  136. [switch_type (BYTE)]
  137. #endif
  138. union _AUTHZ_AUDIT_EVENT_TYPE_UNION {
  139. #ifdef __WIDL__
  140. [case (AUDIT_TYPE_LEGACY)]
  141. #endif
  142. AUTHZ_AUDIT_EVENT_TYPE_LEGACY Legacy;
  143. } AUTHZ_AUDIT_EVENT_TYPE_UNION,*PAUTHZ_AUDIT_EVENT_TYPE_UNION;
  144. typedef
  145. struct _AUTHZ_AUDIT_EVENT_TYPE_OLD {
  146. ULONG Version;
  147. DWORD dwFlags;
  148. LONG RefCount;
  149. ULONG_PTR hAudit;
  150. LUID LinkId;
  151. #ifdef __WIDL__
  152. [switch_is (Version)]
  153. #endif
  154. AUTHZ_AUDIT_EVENT_TYPE_UNION u;
  155. } AUTHZ_AUDIT_EVENT_TYPE_OLD;
  156. typedef
  157. #ifdef __WIDL__
  158. [handle]
  159. #endif
  160. AUTHZ_AUDIT_EVENT_TYPE_OLD *PAUTHZ_AUDIT_EVENT_TYPE_OLD;
  161. #define AUTHZP_WPD_EVENT 0x10
  162. typedef
  163. #ifdef __WIDL__
  164. [context_handle]
  165. #endif
  166. PVOID AUDIT_HANDLE,*PAUDIT_HANDLE;
  167. #endif
  168. #endif