|  | /** | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER within this package. | 
|  | */ | 
|  |  | 
|  | #include <winapifamily.h> | 
|  |  | 
|  | #ifndef _ADTGEN_H | 
|  | #define _ADTGEN_H | 
|  |  | 
|  | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) | 
|  |  | 
|  | #define AUDIT_TYPE_LEGACY 1 | 
|  | #define AUDIT_TYPE_WMI 2 | 
|  |  | 
|  | typedef enum _AUDIT_PARAM_TYPE { | 
|  | APT_None = 1, | 
|  | APT_String, | 
|  | APT_Ulong, | 
|  | APT_Pointer, | 
|  | APT_Sid, | 
|  | APT_LogonId, | 
|  | APT_ObjectTypeList, | 
|  | APT_Luid, | 
|  | APT_Guid, | 
|  | APT_Time, | 
|  | APT_Int64, | 
|  | APT_IpAddress, | 
|  | APT_LogonIdWithSid | 
|  | } AUDIT_PARAM_TYPE; | 
|  |  | 
|  | #define AP_ParamTypeBits 8 | 
|  | #define AP_ParamTypeMask __MSABI_LONG(0xff) | 
|  |  | 
|  | #define AP_FormatHex (__MSABI_LONG(0x1) << AP_ParamTypeBits) | 
|  | #define AP_AccessMask (__MSABI_LONG(0x2) << AP_ParamTypeBits) | 
|  | #define AP_Filespec (__MSABI_LONG(0x1) << AP_ParamTypeBits) | 
|  | #define AP_SidAsLogonId (__MSABI_LONG(0x1) << AP_ParamTypeBits) | 
|  | #define AP_PrimaryLogonId (__MSABI_LONG(0x1) << AP_ParamTypeBits) | 
|  | #define AP_ClientLogonId (__MSABI_LONG(0x2) << AP_ParamTypeBits) | 
|  | #define ApExtractType(TypeFlags) ((AUDIT_PARAM_TYPE) (TypeFlags & AP_ParamTypeMask)) | 
|  | #define ApExtractFlags(TypeFlags) ((TypeFlags & ~AP_ParamTypeMask)) | 
|  |  | 
|  | #define _AUTHZ_SS_MAXSIZE 128 | 
|  |  | 
|  | #define APF_AuditFailure 0x0 | 
|  | #define APF_AuditSuccess 0x1 | 
|  |  | 
|  | #define APF_ValidFlags (APF_AuditSuccess) | 
|  |  | 
|  | #define AUTHZ_ALLOW_MULTIPLE_SOURCE_INSTANCES 0x1 | 
|  | #define AUTHZ_MIGRATED_LEGACY_PUBLISHER 0x2 | 
|  |  | 
|  | #define AUTHZ_AUDIT_INSTANCE_INFORMATION 0x2 | 
|  |  | 
|  | typedef struct _AUDIT_OBJECT_TYPE { | 
|  | GUID ObjectType; | 
|  | USHORT Flags; | 
|  | USHORT Level; | 
|  | ACCESS_MASK AccessMask; | 
|  | } AUDIT_OBJECT_TYPE,*PAUDIT_OBJECT_TYPE; | 
|  |  | 
|  | typedef struct _AUDIT_OBJECT_TYPES { | 
|  | USHORT Count; | 
|  | USHORT Flags; | 
|  | #ifdef __WIDL__ | 
|  | [size_is (Count)] | 
|  | #endif | 
|  | AUDIT_OBJECT_TYPE *pObjectTypes; | 
|  | } AUDIT_OBJECT_TYPES,*PAUDIT_OBJECT_TYPES; | 
|  |  | 
|  | typedef struct _AUDIT_IP_ADDRESS { | 
|  | BYTE pIpAddress[_AUTHZ_SS_MAXSIZE]; | 
|  | } AUDIT_IP_ADDRESS,*PAUDIT_IP_ADDRESS; | 
|  |  | 
|  | typedef struct _AUDIT_PARAM { | 
|  | AUDIT_PARAM_TYPE Type; | 
|  | ULONG Length; | 
|  | DWORD Flags; | 
|  | #ifdef __WIDL__ | 
|  | [switch_type (AUDIT_PARAM_TYPE), switch_is (Type)] | 
|  | #else | 
|  | __C89_NAMELESS | 
|  | #endif | 
|  | union { | 
|  | #ifdef __WIDL__ | 
|  | [default] | 
|  | #endif | 
|  | ULONG_PTR Data0; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_String)] | 
|  | [string] | 
|  | #endif | 
|  | PWSTR String; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_Ulong, APT_Pointer)] | 
|  | #endif | 
|  | ULONG_PTR u; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_Sid)] | 
|  | #endif | 
|  | SID *psid; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_Guid)] | 
|  | #endif | 
|  | GUID *pguid; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_LogonId)] | 
|  | #endif | 
|  | ULONG LogonId_LowPart; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_ObjectTypeList)] | 
|  | #endif | 
|  | AUDIT_OBJECT_TYPES *pObjectTypes; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_IpAddress)] | 
|  | #endif | 
|  | AUDIT_IP_ADDRESS *pIpAddress; | 
|  | }; | 
|  | #ifdef __WIDL__ | 
|  | [switch_type (AUDIT_PARAM_TYPE), switch_is (Type)] | 
|  | #else | 
|  | __C89_NAMELESS | 
|  | #endif | 
|  | union { | 
|  | #ifdef __WIDL__ | 
|  | [default] | 
|  | #endif | 
|  | ULONG_PTR Data1; | 
|  | #ifdef __WIDL__ | 
|  | [case (APT_LogonId)] | 
|  | #endif | 
|  | LONG LogonId_HighPart; | 
|  | }; | 
|  | } AUDIT_PARAM,*PAUDIT_PARAM; | 
|  |  | 
|  | typedef struct _AUDIT_PARAMS { | 
|  | ULONG Length; | 
|  | DWORD Flags; | 
|  | USHORT Count; | 
|  | #ifdef __WIDL__ | 
|  | [size_is (Count)] | 
|  | #endif | 
|  | AUDIT_PARAM *Parameters; | 
|  | } AUDIT_PARAMS,*PAUDIT_PARAMS; | 
|  | typedef struct _AUTHZ_AUDIT_EVENT_TYPE_LEGACY { | 
|  | USHORT CategoryId; | 
|  | USHORT AuditId; | 
|  | USHORT ParameterCount; | 
|  | } AUTHZ_AUDIT_EVENT_TYPE_LEGACY,*PAUTHZ_AUDIT_EVENT_TYPE_LEGACY; | 
|  |  | 
|  | typedef | 
|  | #ifdef __WIDL__ | 
|  | [switch_type (BYTE)] | 
|  | #endif | 
|  | union _AUTHZ_AUDIT_EVENT_TYPE_UNION { | 
|  | #ifdef __WIDL__ | 
|  | [case (AUDIT_TYPE_LEGACY)] | 
|  | #endif | 
|  | AUTHZ_AUDIT_EVENT_TYPE_LEGACY Legacy; | 
|  | } AUTHZ_AUDIT_EVENT_TYPE_UNION,*PAUTHZ_AUDIT_EVENT_TYPE_UNION; | 
|  |  | 
|  | typedef | 
|  | struct _AUTHZ_AUDIT_EVENT_TYPE_OLD { | 
|  | ULONG Version; | 
|  | DWORD dwFlags; | 
|  | LONG RefCount; | 
|  | ULONG_PTR hAudit; | 
|  | LUID LinkId; | 
|  | #ifdef __WIDL__ | 
|  | [switch_is (Version)] | 
|  | #endif | 
|  | AUTHZ_AUDIT_EVENT_TYPE_UNION u; | 
|  | } AUTHZ_AUDIT_EVENT_TYPE_OLD; | 
|  |  | 
|  | typedef | 
|  | #ifdef __WIDL__ | 
|  | [handle] | 
|  | #endif | 
|  | AUTHZ_AUDIT_EVENT_TYPE_OLD *PAUTHZ_AUDIT_EVENT_TYPE_OLD; | 
|  | #define AUTHZP_WPD_EVENT 0x10 | 
|  |  | 
|  | typedef | 
|  | #ifdef __WIDL__ | 
|  | [context_handle] | 
|  | #endif | 
|  | PVOID AUDIT_HANDLE,*PAUDIT_HANDLE; | 
|  |  | 
|  | #endif | 
|  | #endif |