Home | History | Annotate | Download | only in include
      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 
     16 typedef 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 
     56 typedef 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 
     63 typedef 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 
     72 typedef struct _AUDIT_IP_ADDRESS {
     73   BYTE pIpAddress[_AUTHZ_SS_MAXSIZE];
     74 } AUDIT_IP_ADDRESS,*PAUDIT_IP_ADDRESS;
     75 
     76 typedef 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 
    137 typedef 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;
    146 typedef 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 
    152 typedef
    153 #ifdef __WIDL__
    154 [switch_type (BYTE)]
    155 #endif
    156 union _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 
    163 typedef
    164 struct _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 
    176 typedef
    177 #ifdef __WIDL__
    178 [handle]
    179 #endif
    180 AUTHZ_AUDIT_EVENT_TYPE_OLD *PAUTHZ_AUDIT_EVENT_TYPE_OLD;
    181 #define AUTHZP_WPD_EVENT 0x10
    182 
    183 typedef
    184 #ifdef __WIDL__
    185 [context_handle]
    186 #endif
    187 PVOID AUDIT_HANDLE,*PAUDIT_HANDLE;
    188 
    189 #endif
    190 #endif
    191