source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/evntcons.h@ 1167

Last change on this file since 1167 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 4.8 KB
Line 
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#ifndef _EVNTCONS_H_
7#define _EVNTCONS_H_
8
9#include <winapifamily.h>
10
11#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
12
13#include <wmistr.h>
14#include <evntrace.h>
15#include <evntprov.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#define EVENT_HEADER_EXT_TYPE_RELATED_ACTIVITYID 0x0001
22#define EVENT_HEADER_EXT_TYPE_SID 0x0002
23#define EVENT_HEADER_EXT_TYPE_TS_ID 0x0003
24#define EVENT_HEADER_EXT_TYPE_INSTANCE_INFO 0x0004
25#define EVENT_HEADER_EXT_TYPE_STACK_TRACE32 0x0005
26#define EVENT_HEADER_EXT_TYPE_STACK_TRACE64 0x0006
27#define EVENT_HEADER_EXT_TYPE_PEBS_INDEX 0x0007
28#define EVENT_HEADER_EXT_TYPE_PMC_COUNTERS 0x0008
29#define EVENT_HEADER_EXT_TYPE_MAX 0x0009
30
31#define EVENT_HEADER_PROPERTY_XML 0x0001
32#define EVENT_HEADER_PROPERTY_FORWARDED_XML 0x0002
33#define EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG 0x0004
34
35#define EVENT_HEADER_FLAG_EXTENDED_INFO 0x0001
36#define EVENT_HEADER_FLAG_PRIVATE_SESSION 0x0002
37#define EVENT_HEADER_FLAG_STRING_ONLY 0x0004
38#define EVENT_HEADER_FLAG_TRACE_MESSAGE 0x0008
39#define EVENT_HEADER_FLAG_NO_CPUTIME 0x0010
40#define EVENT_HEADER_FLAG_32_BIT_HEADER 0x0020
41#define EVENT_HEADER_FLAG_64_BIT_HEADER 0x0040
42#define EVENT_HEADER_FLAG_CLASSIC_HEADER 0x0100
43#define EVENT_HEADER_FLAG_PROCESSOR_INDEX 0x0200
44
45#define EVENT_ENABLE_PROPERTY_SID 0x00000001
46#define EVENT_ENABLE_PROPERTY_TS_ID 0x00000002
47#define EVENT_ENABLE_PROPERTY_STACK_TRACE 0x00000004
48
49#define PROCESS_TRACE_MODE_REAL_TIME 0x00000100
50#define PROCESS_TRACE_MODE_RAW_TIMESTAMP 0x00001000
51#define PROCESS_TRACE_MODE_EVENT_RECORD 0x10000000
52
53 typedef enum {
54 EventSecuritySetDACL,
55 EventSecuritySetSACL,
56 EventSecurityAddDACL,
57 EventSecurityAddSACL,
58 EventSecurityMax
59 } EVENTSECURITYOPERATION;
60
61#ifndef EVENT_HEADER_EXTENDED_DATA_ITEM_DEF
62#define EVENT_HEADER_EXTENDED_DATA_ITEM_DEF
63 typedef struct _EVENT_HEADER_EXTENDED_DATA_ITEM {
64 USHORT Reserved1;
65 USHORT ExtType;
66 __C89_NAMELESS struct {
67 USHORT Linkage : 1;
68 USHORT Reserved2 : 15;
69 };
70 USHORT DataSize;
71 ULONGLONG DataPtr;
72 } EVENT_HEADER_EXTENDED_DATA_ITEM,*PEVENT_HEADER_EXTENDED_DATA_ITEM;
73#endif
74
75 typedef struct _EVENT_EXTENDED_ITEM_INSTANCE {
76 ULONG InstanceId;
77 ULONG ParentInstanceId;
78 GUID ParentGuid;
79 } EVENT_EXTENDED_ITEM_INSTANCE,*PEVENT_EXTENDED_ITEM_INSTANCE;
80
81 typedef struct _EVENT_EXTENDED_ITEM_RELATED_ACTIVITYID {
82 GUID RelatedActivityId;
83 } EVENT_EXTENDED_ITEM_RELATED_ACTIVITYID,*PEVENT_EXTENDED_ITEM_RELATED_ACTIVITYID;
84
85 typedef struct _EVENT_EXTENDED_ITEM_TS_ID {
86 ULONG SessionId;
87 } EVENT_EXTENDED_ITEM_TS_ID,*PEVENT_EXTENDED_ITEM_TS_ID;
88
89 typedef struct _EVENT_EXTENDED_ITEM_STACK_TRACE32 {
90 ULONG64 MatchId;
91 ULONG Address[ANYSIZE_ARRAY];
92 } EVENT_EXTENDED_ITEM_STACK_TRACE32,*PEVENT_EXTENDED_ITEM_STACK_TRACE32;
93
94 typedef struct _EVENT_EXTENDED_ITEM_STACK_TRACE64 {
95 ULONG64 MatchId;
96 ULONG64 Address[ANYSIZE_ARRAY];
97 } EVENT_EXTENDED_ITEM_STACK_TRACE64,*PEVENT_EXTENDED_ITEM_STACK_TRACE64;
98
99 typedef struct _EVENT_EXTENDED_ITEM_PEBS_INDEX {
100 ULONG64 PebsIndex;
101 } EVENT_EXTENDED_ITEM_PEBS_INDEX,*PEVENT_EXTENDED_ITEM_PEBS_INDEX;
102
103 typedef struct _EVENT_EXTENDED_ITEM_PMC_COUNTERS {
104 ULONG64 Counter[ANYSIZE_ARRAY];
105 } EVENT_EXTENDED_ITEM_PMC_COUNTERS,*PEVENT_EXTENDED_ITEM_PMC_COUNTERS;
106
107#ifndef EVENT_HEADER_DEF
108#define EVENT_HEADER_DEF
109 typedef struct _EVENT_HEADER {
110 USHORT Size;
111 USHORT HeaderType;
112 USHORT Flags;
113 USHORT EventProperty;
114 ULONG ThreadId;
115 ULONG ProcessId;
116 LARGE_INTEGER TimeStamp;
117 GUID ProviderId;
118 EVENT_DESCRIPTOR EventDescriptor;
119 __C89_NAMELESS union {
120 __C89_NAMELESS struct {
121 ULONG KernelTime;
122 ULONG UserTime;
123 } DUMMYSTRUCTNAME;
124 ULONG64 ProcessorTime;
125 } DUMMYUNIONNAME;
126 GUID ActivityId;
127 } EVENT_HEADER,*PEVENT_HEADER;
128#endif
129
130#ifndef EVENT_RECORD_DEF
131#define EVENT_RECORD_DEF
132 typedef struct _EVENT_RECORD {
133 EVENT_HEADER EventHeader;
134 ETW_BUFFER_CONTEXT BufferContext;
135 USHORT ExtendedDataCount;
136 USHORT UserDataLength;
137 PEVENT_HEADER_EXTENDED_DATA_ITEM ExtendedData;
138 PVOID UserData;
139 PVOID UserContext;
140 } EVENT_RECORD,*PEVENT_RECORD;
141
142 typedef const EVENT_RECORD *PCEVENT_RECORD;
143#endif
144
145#if WINVER >= 0x0600
146 ULONG EVNTAPI EventAccessControl (LPGUID Guid, ULONG Operation, PSID Sid, ULONG Rights, BOOLEAN AllowOrDeny);
147 ULONG EVNTAPI EventAccessQuery (LPGUID Guid, PSECURITY_DESCRIPTOR Buffer, PULONG BufferSize);
148 ULONG EVNTAPI EventAccessRemove (LPGUID Guid);
149#endif
150
151 FORCEINLINE ULONG GetEventProcessorIndex (PCEVENT_RECORD er) {
152 return ((er->EventHeader.Flags & EVENT_HEADER_FLAG_PROCESSOR_INDEX) != 0 ? er->BufferContext.ProcessorIndex : er->BufferContext.ProcessorNumber);
153 }
154
155#ifdef __cplusplus
156}
157#endif
158
159#endif
160#endif
Note: See TracBrowser for help on using the repository browser.