Merging r37048, r37051, r37052, r37055 from the-real-msvc branch
[reactos.git] / reactos / include / psdk / evntrace.h
1 #ifndef _EVNTRACE_
2 #define _EVNTRACE_
3
4 #ifndef WMIAPI
5 #ifndef MIDL_PASS
6 #ifdef _WMI_SOURCE_
7 #define WMIAPI __stdcall
8 #else
9 #define WMIAPI DECLSPEC_IMPORT __stdcall
10 #endif
11 #endif
12 #endif
13
14 typedef struct _EVENT_TRACE_HEADER
15 {
16 USHORT Size;
17 union {
18 USHORT FieldTypeFlags;
19 struct {
20 UCHAR HeaderType;
21 UCHAR MarkerFlags;
22 };
23 };
24 union {
25 ULONG Version;
26 struct {
27 UCHAR Type;
28 UCHAR Level;
29 USHORT Version;
30 } Class;
31 };
32 ULONG ThreadId;
33 ULONG ProcessId;
34 LARGE_INTEGER TimeStamp;
35 union {
36 GUID Guid;
37 ULONGLONG GuidPtr;
38 };
39 union {
40 struct {
41 ULONG ClientContext;
42 ULONG Flags;
43 };
44 struct {
45 ULONG KernelTime;
46 ULONG UserTime;
47 };
48 ULONG64 ProcessorTime;
49 };
50 } EVENT_TRACE_HEADER;
51
52 #ifndef PEVENT_TRACE_HEADER_DEFINED
53 #define PEVENT_TRACE_HEADER_DEFINED
54 typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER;
55 #endif
56
57
58 typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
59 typedef ULONG (WINAPI *WMIDPREQUEST)(
60 WMIDPREQUESTCODE RequestCode,
61 PVOID RequestContext,
62 ULONG *BufferSize,
63 PVOID Buffer
64 );
65
66 typedef struct _TRACE_GUID_REGISTRATION
67 {
68 LPCGUID Guid;
69 HANDLE RegHandle;
70 } TRACE_GUID_REGISTRATION, *PTRACE_GUID_REGISTRATION;
71
72
73 ULONG WMIAPI TraceEvent(TRACEHANDLE,PEVENT_TRACE_HEADER);
74 TRACEHANDLE WMIAPI GetTraceLoggerHandle(PVOID);
75 ULONG WMIAPI GetTraceEnableFlags(TRACEHANDLE);
76 UCHAR WMIAPI GetTraceEnableLevel(TRACEHANDLE);
77 ULONG WMIAPI RegisterTraceGuidsA(WMIDPREQUEST,PVOID,LPCGUID,ULONG,PTRACE_GUID_REGISTRATION,LPCSTR,LPCSTR,PTRACEHANDLE);
78 ULONG WMIAPI RegisterTraceGuidsW(WMIDPREQUEST,PVOID,LPCGUID,ULONG,PTRACE_GUID_REGISTRATION,LPCWSTR,LPCWSTR,PTRACEHANDLE);
79 ULONG WMIAPI UnregisterTraceGuids(TRACEHANDLE);
80
81 #if defined (UNICODE) || defined (_UNICODE)
82 #define RegisterTraceGuids RegisterTraceGuidsW
83 #else
84 #define RegisterTraceGuids RegisterTraceGuidsA
85 #endif
86
87 #endif /* ENVTRACE_H */
88