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
)(
93 _In_ LPCGUID SourceId
,
96 _In_ ULONGLONG MatchAnyKeyword
,
97 _In_ ULONGLONG MatchAllKeyword
,
98 _In_opt_ PEVENT_FILTER_DESCRIPTOR FilterData
,
99 _Inout_opt_ PVOID CallbackContext
);
101 #if (WINVER >= _WIN32_WINNT_VISTA)
105 _In_ LPCGUID ProviderId
,
106 _In_opt_ PENABLECALLBACK EnableCallback
,
107 _In_opt_ PVOID CallbackContext
,
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_reads_opt_(UserDataCount
) PEVENT_DATA_DESCRIPTOR UserData
);
139 _In_ REGHANDLE RegHandle
,
140 _In_ PCEVENT_DESCRIPTOR EventDescriptor
,
141 _In_opt_ LPCGUID ActivityId
,
142 _In_opt_ LPCGUID RelatedActivityId
,
143 _In_ ULONG UserDataCount
,
144 _In_reads_opt_(UserDataCount
) PEVENT_DATA_DESCRIPTOR UserData
);
149 _In_ REGHANDLE RegHandle
,
151 _In_ ULONGLONG Keyword
,
156 EventActivityIdControl(
157 _In_ ULONG ControlCode
,
158 _Inout_ 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_opt_ LPCGUID ActivityId
,
171 _In_opt_ LPCGUID RelatedActivityId
,
172 _In_ ULONG UserDataCount
,
173 _In_reads_opt_(UserDataCount
) PEVENT_DATA_DESCRIPTOR UserData
);
181 _Out_ PEVENT_DATA_DESCRIPTOR EventDataDescriptor
,
182 _In_reads_bytes_(DataSize
) 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
);