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