4 * This file is part of the ReactOS PSDK package.
7 * Created by Amine Khaldi.
9 * THIS SOFTWARE IS NOT COPYRIGHTED
11 * This source code is offered for use in the public domain. You may
12 * use, modify or distribute it freely.
14 * This code is distributed in the hope that it will be useful but
15 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16 * DISCLAIMED. This includes but is not limited to warranties of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
28 #define EVNTAPI __stdcall
30 #define EVNTAPI DECLSPEC_IMPORT __stdcall
31 #endif /* _EVNT_SOURCE_ */
32 #endif /* MIDL_PASS */
39 #define EVENT_MIN_LEVEL (0)
40 #define EVENT_MAX_LEVEL (0xff)
42 #define EVENT_ACTIVITY_CTRL_GET_ID (1)
43 #define EVENT_ACTIVITY_CTRL_SET_ID (2)
44 #define EVENT_ACTIVITY_CTRL_CREATE_ID (3)
45 #define EVENT_ACTIVITY_CTRL_GET_SET_ID (4)
46 #define EVENT_ACTIVITY_CTRL_CREATE_SET_ID (5)
48 typedef ULONGLONG REGHANDLE
, *PREGHANDLE
;
50 #define MAX_EVENT_DATA_DESCRIPTORS (128)
51 #define MAX_EVENT_FILTER_DATA_SIZE (1024)
53 #define EVENT_FILTER_TYPE_SCHEMATIZED (0x80000000)
55 typedef struct _EVENT_DATA_DESCRIPTOR
{
59 } EVENT_DATA_DESCRIPTOR
, *PEVENT_DATA_DESCRIPTOR
;
61 typedef struct _EVENT_DESCRIPTOR
{
69 } EVENT_DESCRIPTOR
, *PEVENT_DESCRIPTOR
;
70 typedef const EVENT_DESCRIPTOR
*PCEVENT_DESCRIPTOR
;
73 typedef struct _EVENT_FILTER_DESCRIPTOR
{
77 } EVENT_FILTER_DESCRIPTOR
, *PEVENT_FILTER_DESCRIPTOR
;
80 typedef struct _EVENT_FILTER_HEADER
{
87 } EVENT_FILTER_HEADER
, *PEVENT_FILTER_HEADER
;
92 (NTAPI
*PENABLECALLBACK
)(
96 IN ULONGLONG MatchAnyKeyword
,
97 IN ULONGLONG MatchAllKeyword
,
98 IN PEVENT_FILTER_DESCRIPTOR FilterData OPTIONAL
,
99 IN OUT PVOID CallbackContext OPTIONAL
);
101 #if (WINVER >= _WIN32_WINNT_VISTA)
105 IN LPCGUID ProviderId
,
106 IN PENABLECALLBACK EnableCallback OPTIONAL
,
107 IN PVOID CallbackContext OPTIONAL
,
108 OUT PREGHANDLE RegHandle
);
113 IN REGHANDLE RegHandle
);
118 IN REGHANDLE RegHandle
,
119 IN PCEVENT_DESCRIPTOR EventDescriptor
);
123 EventProviderEnabled(
124 IN REGHANDLE RegHandle
,
126 IN ULONGLONG Keyword
);
131 IN REGHANDLE RegHandle
,
132 IN PCEVENT_DESCRIPTOR EventDescriptor
,
133 IN ULONG UserDataCount
,
134 IN PEVENT_DATA_DESCRIPTOR UserData
);
139 IN REGHANDLE RegHandle
,
140 IN PCEVENT_DESCRIPTOR EventDescriptor
,
141 IN LPCGUID ActivityId OPTIONAL
,
142 IN LPCGUID RelatedActivityId OPTIONAL
,
143 IN ULONG UserDataCount
,
144 IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL
);
149 IN REGHANDLE RegHandle
,
151 IN ULONGLONG Keyword
,
156 EventActivityIdControl(
157 IN ULONG ControlCode
,
158 IN OUT LPGUID ActivityId
);
160 #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
162 #if (WINVER >= _WIN32_WINNT_WIN7)
166 IN REGHANDLE RegHandle
,
167 IN PCEVENT_DESCRIPTOR EventDescriptor
,
170 IN LPCGUID ActivityId OPTIONAL
,
171 IN LPCGUID RelatedActivityId OPTIONAL
,
172 IN ULONG UserDataCount
,
173 IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL
);
181 OUT PEVENT_DATA_DESCRIPTOR EventDataDescriptor
,
182 IN
const VOID
* DataPtr
,
185 EventDataDescriptor
->Ptr
= (ULONGLONG
)(ULONG_PTR
)DataPtr
;
186 EventDataDescriptor
->Size
= DataSize
;
187 EventDataDescriptor
->Reserved
= 0;
193 OUT PEVENT_DESCRIPTOR EventDescriptor
,
200 IN ULONGLONG Keyword
)
202 EventDescriptor
->Id
= Id
;
203 EventDescriptor
->Version
= Version
;
204 EventDescriptor
->Channel
= Channel
;
205 EventDescriptor
->Level
= Level
;
206 EventDescriptor
->Task
= Task
;
207 EventDescriptor
->Opcode
= Opcode
;
208 EventDescriptor
->Keyword
= Keyword
;
214 OUT PEVENT_DESCRIPTOR EventDescriptor
)
216 memset(EventDescriptor
, 0, sizeof(EVENT_DESCRIPTOR
));
222 IN PCEVENT_DESCRIPTOR EventDescriptor
)
224 return (EventDescriptor
->Id
);
230 IN PCEVENT_DESCRIPTOR EventDescriptor
)
232 return (EventDescriptor
->Version
);
238 IN PCEVENT_DESCRIPTOR EventDescriptor
)
240 return (EventDescriptor
->Task
);
246 IN PCEVENT_DESCRIPTOR EventDescriptor
)
248 return (EventDescriptor
->Opcode
);
254 IN PCEVENT_DESCRIPTOR EventDescriptor
)
256 return (EventDescriptor
->Channel
);
262 IN PCEVENT_DESCRIPTOR EventDescriptor
)
264 return (EventDescriptor
->Level
);
270 IN PCEVENT_DESCRIPTOR EventDescriptor
)
272 return (EventDescriptor
->Keyword
);
278 IN PEVENT_DESCRIPTOR EventDescriptor
,
281 EventDescriptor
->Id
= Id
;
282 return (EventDescriptor
);
288 IN PEVENT_DESCRIPTOR EventDescriptor
,
291 EventDescriptor
->Version
= Version
;
292 return (EventDescriptor
);
298 IN PEVENT_DESCRIPTOR EventDescriptor
,
301 EventDescriptor
->Task
= Task
;
302 return (EventDescriptor
);
308 IN PEVENT_DESCRIPTOR EventDescriptor
,
311 EventDescriptor
->Opcode
= Opcode
;
312 return (EventDescriptor
);
318 IN PEVENT_DESCRIPTOR EventDescriptor
,
321 EventDescriptor
->Level
= Level
;
322 return (EventDescriptor
);
328 IN PEVENT_DESCRIPTOR EventDescriptor
,
331 EventDescriptor
->Channel
= Channel
;
332 return (EventDescriptor
);
338 IN PEVENT_DESCRIPTOR EventDescriptor
,
339 IN ULONGLONG Keyword
)
341 EventDescriptor
->Keyword
= Keyword
;
342 return (EventDescriptor
);
349 IN PEVENT_DESCRIPTOR EventDescriptor
,
350 IN ULONGLONG Keyword
)
352 EventDescriptor
->Keyword
|= Keyword
;
353 return (EventDescriptor
);