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.
26 #define EVNTAPI __stdcall
28 #define EVNTAPI DECLSPEC_IMPORT __stdcall
29 #endif /* _EVNT_SOURCE_ */
30 #endif /* MIDL_PASS */
37 #define EVENT_MIN_LEVEL (0)
38 #define EVENT_MAX_LEVEL (0xff)
40 #define EVENT_ACTIVITY_CTRL_GET_ID (1)
41 #define EVENT_ACTIVITY_CTRL_SET_ID (2)
42 #define EVENT_ACTIVITY_CTRL_CREATE_ID (3)
43 #define EVENT_ACTIVITY_CTRL_GET_SET_ID (4)
44 #define EVENT_ACTIVITY_CTRL_CREATE_SET_ID (5)
46 typedef ULONGLONG REGHANDLE
, *PREGHANDLE
;
48 #define MAX_EVENT_DATA_DESCRIPTORS (128)
49 #define MAX_EVENT_FILTER_DATA_SIZE (1024)
51 #define EVENT_FILTER_TYPE_SCHEMATIZED (0x80000000)
53 typedef struct _EVENT_DATA_DESCRIPTOR
{
57 } EVENT_DATA_DESCRIPTOR
, *PEVENT_DATA_DESCRIPTOR
;
59 typedef struct _EVENT_DESCRIPTOR
{
67 } EVENT_DESCRIPTOR
, *PEVENT_DESCRIPTOR
;
68 typedef const EVENT_DESCRIPTOR
*PCEVENT_DESCRIPTOR
;
70 typedef struct _EVENT_FILTER_DESCRIPTOR
{
74 } EVENT_FILTER_DESCRIPTOR
, *PEVENT_FILTER_DESCRIPTOR
;
76 typedef struct _EVENT_FILTER_HEADER
{
83 } EVENT_FILTER_HEADER
, *PEVENT_FILTER_HEADER
;
88 (NTAPI
*PENABLECALLBACK
)(
92 IN ULONGLONG MatchAnyKeyword
,
93 IN ULONGLONG MatchAllKeyword
,
94 IN PEVENT_FILTER_DESCRIPTOR FilterData OPTIONAL
,
95 IN OUT PVOID CallbackContext OPTIONAL
);
97 #if (WINVER >= _WIN32_WINNT_VISTA)
101 IN LPCGUID ProviderId
,
102 IN PENABLECALLBACK EnableCallback OPTIONAL
,
103 IN PVOID CallbackContext OPTIONAL
,
104 OUT PREGHANDLE RegHandle
);
109 IN REGHANDLE RegHandle
);
114 IN REGHANDLE RegHandle
,
115 IN PCEVENT_DESCRIPTOR EventDescriptor
);
119 EventProviderEnabled(
120 IN REGHANDLE RegHandle
,
122 IN ULONGLONG Keyword
);
127 IN REGHANDLE RegHandle
,
128 IN PCEVENT_DESCRIPTOR EventDescriptor
,
129 IN ULONG UserDataCount
,
130 IN PEVENT_DATA_DESCRIPTOR UserData
);
135 IN REGHANDLE RegHandle
,
136 IN PCEVENT_DESCRIPTOR EventDescriptor
,
137 IN LPCGUID ActivityId OPTIONAL
,
138 IN LPCGUID RelatedActivityId OPTIONAL
,
139 IN ULONG UserDataCount
,
140 IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL
);
145 IN REGHANDLE RegHandle
,
147 IN ULONGLONG Keyword
,
152 EventActivityIdControl(
153 IN ULONG ControlCode
,
154 IN OUT LPGUID ActivityId
);
156 #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
158 #if (WINVER >= _WIN32_WINNT_WIN7)
162 IN REGHANDLE RegHandle
,
163 IN PCEVENT_DESCRIPTOR EventDescriptor
,
166 IN LPCGUID ActivityId OPTIONAL
,
167 IN LPCGUID RelatedActivityId OPTIONAL
,
168 IN ULONG UserDataCount
,
169 IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL
);
177 OUT PEVENT_DATA_DESCRIPTOR EventDataDescriptor
,
178 IN
const VOID
* DataPtr
,
181 EventDataDescriptor
->Ptr
= (ULONGLONG
)(ULONG_PTR
)DataPtr
;
182 EventDataDescriptor
->Size
= DataSize
;
183 EventDataDescriptor
->Reserved
= 0;
189 OUT PEVENT_DESCRIPTOR EventDescriptor
,
196 IN ULONGLONG Keyword
)
198 EventDescriptor
->Id
= Id
;
199 EventDescriptor
->Version
= Version
;
200 EventDescriptor
->Channel
= Channel
;
201 EventDescriptor
->Level
= Level
;
202 EventDescriptor
->Task
= Task
;
203 EventDescriptor
->Opcode
= Opcode
;
204 EventDescriptor
->Keyword
= Keyword
;
210 OUT PEVENT_DESCRIPTOR EventDescriptor
)
212 memset(EventDescriptor
, 0, sizeof(EVENT_DESCRIPTOR
));
218 IN PCEVENT_DESCRIPTOR EventDescriptor
)
220 return (EventDescriptor
->Id
);
226 IN PCEVENT_DESCRIPTOR EventDescriptor
)
228 return (EventDescriptor
->Version
);
234 IN PCEVENT_DESCRIPTOR EventDescriptor
)
236 return (EventDescriptor
->Task
);
242 IN PCEVENT_DESCRIPTOR EventDescriptor
)
244 return (EventDescriptor
->Opcode
);
250 IN PCEVENT_DESCRIPTOR EventDescriptor
)
252 return (EventDescriptor
->Channel
);
258 IN PCEVENT_DESCRIPTOR EventDescriptor
)
260 return (EventDescriptor
->Level
);
266 IN PCEVENT_DESCRIPTOR EventDescriptor
)
268 return (EventDescriptor
->Keyword
);
274 IN PEVENT_DESCRIPTOR EventDescriptor
,
277 EventDescriptor
->Id
= Id
;
278 return (EventDescriptor
);
284 IN PEVENT_DESCRIPTOR EventDescriptor
,
287 EventDescriptor
->Version
= Version
;
288 return (EventDescriptor
);
294 IN PEVENT_DESCRIPTOR EventDescriptor
,
297 EventDescriptor
->Task
= Task
;
298 return (EventDescriptor
);
304 IN PEVENT_DESCRIPTOR EventDescriptor
,
307 EventDescriptor
->Opcode
= Opcode
;
308 return (EventDescriptor
);
314 IN PEVENT_DESCRIPTOR EventDescriptor
,
317 EventDescriptor
->Level
= Level
;
318 return (EventDescriptor
);
324 IN PEVENT_DESCRIPTOR EventDescriptor
,
327 EventDescriptor
->Channel
= Channel
;
328 return (EventDescriptor
);
334 IN PEVENT_DESCRIPTOR EventDescriptor
,
335 IN ULONGLONG Keyword
)
337 EventDescriptor
->Keyword
= Keyword
;
338 return (EventDescriptor
);
345 IN PEVENT_DESCRIPTOR EventDescriptor
,
346 IN ULONGLONG Keyword
)
348 EventDescriptor
->Keyword
|= Keyword
;
349 return (EventDescriptor
);