ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/evntprov.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 6954 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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 * evntprov.h
7 *
8 * This file is part of the ReactOS PSDK package.
9 *
10 * Contributors:
11 * Created by Amine Khaldi.
12 * Extended by Kai Tietz for mingw-w64
13 *
14 * THIS SOFTWARE IS NOT COPYRIGHTED
15 *
16 * This source code is offered for use in the public domain. You may
17 * use, modify or distribute it freely.
18 *
19 * This code is distributed in the hope that it will be useful but
20 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
21 * DISCLAIMED. This includes but is not limited to warranties of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
23 *
24 */
25
26 #ifndef _EVNTPROV_H_
27 #define _EVNTPROV_H_
28
29 #include <winapifamily.h>
30
31 #if !defined (EVNTAPI) && !defined (__WIDL__) && !defined (MIDL_PASS)
32 #ifdef _EVNT_SOURCE_
33 #ifdef _ARM_
34 #define EVNTAPI
35 #else
36 #define EVNTAPI __stdcall
37 #endif
38 #else
39 #ifdef _ARM_
40 #define EVNTAPI DECLSPEC_IMPORT
41 #else
42 #define EVNTAPI DECLSPEC_IMPORT __stdcall
43 #endif
44 #endif
45 #endif
46
47 #define EVENT_MIN_LEVEL (0)
48 #define EVENT_MAX_LEVEL (0xff)
49
50 #define EVENT_ACTIVITY_CTRL_GET_ID (1)
51 #define EVENT_ACTIVITY_CTRL_SET_ID (2)
52 #define EVENT_ACTIVITY_CTRL_CREATE_ID (3)
53 #define EVENT_ACTIVITY_CTRL_GET_SET_ID (4)
54 #define EVENT_ACTIVITY_CTRL_CREATE_SET_ID (5)
55
56 #define EVENT_FILTER_TYPE_SCHEMATIZED (0x80000000)
57 #define EVENT_FILTER_TYPE_SYSTEM_FLAGS (0x80000001)
58 #define EVENT_FILTER_TYPE_TRACEHANDLE (0x80000002)
59
60 #define MAX_EVENT_DATA_DESCRIPTORS (128)
61 #define MAX_EVENT_FILTER_DATA_SIZE (1024)
62
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66
67 #include <guiddef.h>
68
69 typedef ULONGLONG REGHANDLE,*PREGHANDLE;
70
71 typedef struct _EVENT_DATA_DESCRIPTOR {
72 ULONGLONG Ptr;
73 ULONG Size;
74 ULONG Reserved;
75 } EVENT_DATA_DESCRIPTOR,*PEVENT_DATA_DESCRIPTOR;
76
77 #ifndef EVENT_DESCRIPTOR_DEF
78 #define EVENT_DESCRIPTOR_DEF
79 typedef struct _EVENT_DESCRIPTOR {
80 USHORT Id;
81 UCHAR Version;
82 UCHAR Channel;
83 UCHAR Level;
84 UCHAR Opcode;
85 USHORT Task;
86 ULONGLONG Keyword;
87 } EVENT_DESCRIPTOR,*PEVENT_DESCRIPTOR;
88 typedef const EVENT_DESCRIPTOR *PCEVENT_DESCRIPTOR;
89 #endif
90
91 struct _EVENT_FILTER_DESCRIPTOR {
92 ULONGLONG Ptr;
93 ULONG Size;
94 ULONG Type;
95 };
96
97 #ifndef DEFINED_PEVENT_FILTER_DESC
98 #define DEFINED_PEVENT_FILTER_DESC
99 typedef struct _EVENT_FILTER_DESCRIPTOR EVENT_FILTER_DESCRIPTOR,*PEVENT_FILTER_DESCRIPTOR;
100 #endif /* for evntrace.h */
101
102 typedef struct _EVENT_FILTER_HEADER {
103 USHORT Id;
104 UCHAR Version;
105 UCHAR Reserved[5];
106 ULONGLONG InstanceId;
107 ULONG Size;
108 ULONG NextOffset;
109 } EVENT_FILTER_HEADER,*PEVENT_FILTER_HEADER;
110
111 #if !defined (_ETW_KM_) && !defined (__WIDL__) /* for wdm.h & widl */
112 typedef enum _EVENT_INFO_CLASS {
113 EventProviderBinaryTrackInfo,
114 MaxEventInfo
115 } EVENT_INFO_CLASS;
116
117 typedef VOID (NTAPI *PENABLECALLBACK) (LPCGUID SourceId, ULONG IsEnabled, UCHAR Level, ULONGLONG MatchAnyKeyword, ULONGLONG MatchAllKeyword, PEVENT_FILTER_DESCRIPTOR FilterData, PVOID CallbackContext);
118
119 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
120 #if WINVER >= 0x0600
121 BOOLEAN EVNTAPI EventEnabled (REGHANDLE RegHandle, PCEVENT_DESCRIPTOR EventDescriptor);
122 BOOLEAN EVNTAPI EventProviderEnabled (REGHANDLE RegHandle, UCHAR Level, ULONGLONG Keyword);
123 ULONG EVNTAPI EventWriteTransfer (REGHANDLE RegHandle, PCEVENT_DESCRIPTOR EventDescriptor, LPCGUID ActivityId, LPCGUID RelatedActivityId, ULONG UserDataCount, PEVENT_DATA_DESCRIPTOR UserData);
124 ULONG EVNTAPI EventWriteString (REGHANDLE RegHandle, UCHAR Level, ULONGLONG Keyword, PCWSTR String);
125 ULONG EVNTAPI EventActivityIdControl (ULONG ControlCode, LPGUID ActivityId);
126 #endif
127 #if WINVER >= 0x0601
128 ULONG EVNTAPI EventWriteEx (REGHANDLE RegHandle, PCEVENT_DESCRIPTOR EventDescriptor, ULONG64 Filter, ULONG Flags, LPCGUID ActivityId, LPCGUID RelatedActivityId, ULONG UserDataCount, PEVENT_DATA_DESCRIPTOR UserData);
129 #endif
130 #endif
131
132 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
133 #if WINVER >= 0x0600
134 ULONG EVNTAPI EventRegister (LPCGUID ProviderId, PENABLECALLBACK EnableCallback, PVOID CallbackContext, PREGHANDLE RegHandle);
135 ULONG EVNTAPI EventUnregister (REGHANDLE RegHandle);
136 ULONG EVNTAPI EventWrite (REGHANDLE RegHandle, PCEVENT_DESCRIPTOR EventDescriptor, ULONG UserDataCount, PEVENT_DATA_DESCRIPTOR UserData);
137 #endif
138 #if WINVER >= 0x0602
139 ULONG EVNTAPI EventSetInformation (REGHANDLE RegHandle, EVENT_INFO_CLASS InformationClass, PVOID EventInformation, ULONG InformationLength);
140 #endif
141 #endif
142
143 #endif
144
145 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
146 FORCEINLINE VOID EventDataDescCreate (PEVENT_DATA_DESCRIPTOR evp, const VOID *d, ULONG sz) {
147 evp->Ptr = (ULONGLONG) (ULONG_PTR) d;
148 evp->Size = sz;
149 evp->Reserved = 0;
150 }
151 #endif
152
153 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
154 FORCEINLINE VOID EventDescCreate (PEVENT_DESCRIPTOR ev, USHORT Id, UCHAR ver, UCHAR ch, UCHAR lvl, USHORT t, UCHAR opc, ULONGLONG keyw) {
155 ev->Id = Id;
156 ev->Version = ver;
157 ev->Channel = ch;
158 ev->Level = lvl;
159 ev->Task = t;
160 ev->Opcode = opc;
161 ev->Keyword = keyw;
162 }
163
164 FORCEINLINE UCHAR EventDescGetChannel (PCEVENT_DESCRIPTOR ev) {
165 return ev->Channel;
166 }
167
168 FORCEINLINE USHORT EventDescGetId (PCEVENT_DESCRIPTOR ev) {
169 return ev->Id;
170 }
171
172 FORCEINLINE ULONGLONG EventDescGetKeyword (PCEVENT_DESCRIPTOR ev) {
173 return ev->Keyword;
174 }
175
176 FORCEINLINE UCHAR EventDescGetLevel (PCEVENT_DESCRIPTOR ev) {
177 return ev->Level;
178 }
179
180 FORCEINLINE UCHAR EventDescGetOpcode (PCEVENT_DESCRIPTOR ev) {
181 return ev->Opcode;
182 }
183
184 FORCEINLINE USHORT EventDescGetTask (PCEVENT_DESCRIPTOR ev) {
185 return ev->Task;
186 }
187
188 FORCEINLINE PEVENT_DESCRIPTOR EventDescOrKeyword (PEVENT_DESCRIPTOR ev, ULONGLONG keyw) {
189 ev->Keyword |= keyw;
190 return ev;
191 }
192
193 FORCEINLINE UCHAR EventDescGetVersion (PCEVENT_DESCRIPTOR ev) {
194 return ev->Version;
195 }
196
197 FORCEINLINE PEVENT_DESCRIPTOR EventDescSetChannel (PEVENT_DESCRIPTOR ev, UCHAR ch) {
198 ev->Channel = ch;
199 return ev;
200 }
201
202 FORCEINLINE PEVENT_DESCRIPTOR EventDescSetId (PEVENT_DESCRIPTOR ev, USHORT Id) {
203 ev->Id = Id;
204 return ev;
205 }
206
207 FORCEINLINE PEVENT_DESCRIPTOR EventDescSetKeyword (PEVENT_DESCRIPTOR ev, ULONGLONG keyw) {
208 ev->Keyword = keyw;
209 return ev;
210 }
211
212 FORCEINLINE PEVENT_DESCRIPTOR EventDescSetLevel (PEVENT_DESCRIPTOR ev, UCHAR lvl) {
213 ev->Level = lvl;
214 return ev;
215 }
216
217 FORCEINLINE PEVENT_DESCRIPTOR EventDescSetOpcode (PEVENT_DESCRIPTOR ev, UCHAR opc) {
218 ev->Opcode = opc;
219 return ev;
220 }
221
222 FORCEINLINE PEVENT_DESCRIPTOR EventDescSetTask (PEVENT_DESCRIPTOR ev, USHORT t) {
223 ev->Task = t;
224 return ev;
225 }
226
227 FORCEINLINE PEVENT_DESCRIPTOR EventDescSetVersion (PEVENT_DESCRIPTOR ev, UCHAR ver) {
228 ev->Version = ver;
229 return ev;
230 }
231
232 FORCEINLINE VOID EventDescZero (PEVENT_DESCRIPTOR ev) {
233 memset (ev, 0, sizeof (EVENT_DESCRIPTOR));
234 }
235 #endif
236
237 #ifdef __cplusplus
238 }
239 #endif
240
241 #endif