From 8f983be0b585fc1e8d9354f604280fe51677f143 Mon Sep 17 00:00:00 2001
From: Mike McCormack <mike@codeweavers.com>
Date: Wed, 20 Apr 2005 12:52:24 +0000
Subject: [PATCH] Added evntrace.h and wmistr.h.

---
 include/Makefile.in |   2 +
 include/evntrace.h  | 181 ++++++++++++++++++++++++++++++++++++++++++++
 include/wmistr.h    |  36 +++++++++
 3 files changed, 219 insertions(+)
 create mode 100644 include/evntrace.h
 create mode 100644 include/wmistr.h

diff --git a/include/Makefile.in b/include/Makefile.in
index fb17cbecd09..11e7bd09b50 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -111,6 +111,7 @@ WINDOWS_INCLUDES = \
 	dxerr9.h \
 	dxfile.h \
 	evcode.h \
+	evntrace.h \
 	excpt.h \
 	exdispid.h \
 	fci.h \
@@ -252,6 +253,7 @@ WINDOWS_INCLUDES = \
 	wintrust.h \
 	winuser.h \
 	winver.h \
+	wmistr.h \
 	wnaspi32.h \
 	wownt32.h \
 	ws2spi.h \
diff --git a/include/evntrace.h b/include/evntrace.h
new file mode 100644
index 00000000000..e0e45d92441
--- /dev/null
+++ b/include/evntrace.h
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2005 Mike McCormack
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef _EVNTRACE_
+#define _EVNTRACE_
+
+#include <guiddef.h>
+
+typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
+
+struct _EVENT_TRACE_LOGFILEA;
+struct _EVENT_TRACE_LOGFILEW;
+
+typedef struct _EVENT_TRACE_LOGFILEA EVENT_TRACE_LOGFILEA, *PEVENT_TRACE_LOGFILEA;
+typedef struct _EVENT_TRACE_LOGFILEW EVENT_TRACE_LOGFILEW, *PEVENT_TRACE_LOGFILEW;
+
+typedef ULONG (WINAPI * PEVENT_TRACE_BUFFER_CALLBACKA)( PEVENT_TRACE_LOGFILEA );
+typedef ULONG (WINAPI * PEVENT_TRACE_BUFFER_CALLBACKW)( PEVENT_TRACE_LOGFILEW );
+
+typedef ULONG (WINAPI * WMIDPREQUEST)( WMIDPREQUESTCODE, PVOID, ULONG*, PVOID );
+
+typedef struct _TRACE_GUID_REGISTRATION
+{
+    LPCGUID Guid;
+    HANDLE RegHandle;
+} TRACE_GUID_REGISTRATION, *PTRACE_GUID_REGISTRATION;
+
+typedef struct _EVENT_TRACE_HEADER
+{
+    USHORT Size;
+    union
+    {
+        USHORT FieldTypeFlags;
+        struct 
+        {
+            UCHAR HeaderType;
+            UCHAR MarkerFlags;
+        };
+    } DUMMYUNIONNAME;
+    union
+    {
+        ULONG Version;
+        struct
+        {
+            UCHAR Type;
+            UCHAR Level;
+            USHORT Version;
+        } Class;
+    } DUMMYUNIONNAME1;
+    ULONG ThreadId;
+    ULONG ProcessId;
+    LARGE_INTEGER TimeStamp;
+    union
+    {
+        GUID Guid;
+        ULONGLONG GuidPtr;
+    } DUMMYUNIONNAME2;
+    union
+    {
+        struct
+        {
+            ULONG ClientContext;
+            ULONG Flags;
+        };
+        struct
+        {
+            ULONG KernelTime;
+            ULONG UserTime;
+        };
+    } DUMMYUNIONNAME3;
+} EVENT_TRACE_HEADER, *PEVENT_TRACE_HEADER;
+
+typedef struct _EVENT_TRACE
+{
+    EVENT_TRACE_HEADER Header;
+    ULONG InstanceId;
+    ULONG ParentInstanceId;
+    GUID ParentGuid;
+    PVOID MofData;
+    ULONG MofLength;
+    ULONG ClientContext;
+} EVENT_TRACE, *PEVENT_TRACE;
+
+typedef VOID (WINAPI * PEVENT_CALLBACK)( PEVENT_TRACE );
+
+typedef struct _TRACE_LOGFILE_HEADER
+{
+    ULONG BufferSize;
+    union
+    {
+        ULONG Version;
+        struct 
+        {
+            UCHAR MajorVersion;
+            UCHAR MinorVersion;
+            UCHAR SubVersion;
+            UCHAR SubMinorVersion;
+        } VersionDetail;
+    } DUMMYUNIONNAME;
+    ULONG ProviderVersion;
+    ULONG NumberOfProcessors;
+    LARGE_INTEGER EndTime;
+    ULONG TimerResolution;
+    ULONG MaximumFileSize;
+    ULONG LogFileMode;
+    ULONG BuffersWritten;
+    union
+    {
+        GUID LogInstanceGuid;
+        struct
+        {
+            ULONG StartBuffers;
+            ULONG PointerSize;
+            ULONG EventsLost;
+            ULONG CpuSpeedInMHZ;
+        };
+    } DUMMYUNIONNAME1;
+    LPWSTR LoggerName;
+    LPWSTR LogFileName;
+    TIME_ZONE_INFORMATION TimeZone;
+    LARGE_INTEGER BootTime;
+    LARGE_INTEGER PerfFreq;
+    LARGE_INTEGER StartTime;
+    ULONG ReservedTime;
+    ULONG BuffersLost;
+} TRACE_LOGFILE_HEADER, *PTRACE_LOGFILE_HEADER;
+
+struct _EVENT_TRACE_LOGFILEW
+{
+    LPWSTR LogFileName;
+    LPWSTR LoggerName;
+    LONGLONG CurrentTime;
+    ULONG LogFileMode;
+    EVENT_TRACE CurrentEvent;
+    TRACE_LOGFILE_HEADER LogfileHeader;
+    PEVENT_TRACE_BUFFER_CALLBACKW BufferCallback;
+    ULONG BufferSize;
+    ULONG Filled;
+    ULONG EventsLost;
+    PEVENT_CALLBACK EventCallback;
+    PVOID Context;
+};
+
+struct _EVENT_TRACE_LOGFILEA
+{
+    LPSTR LogFileName;
+    LPSTR LoggerName;
+    LONGLONG CurrentTime;
+    ULONG LogFileMode;
+    EVENT_TRACE CurrentEvent;
+    TRACE_LOGFILE_HEADER LogfileHeader;
+    PEVENT_TRACE_BUFFER_CALLBACKA BufferCallback;
+    ULONG BufferSize;
+    ULONG Filled;
+    ULONG EventsLost;
+    PEVENT_CALLBACK EventCallback;
+    PVOID Context;
+};
+
+ULONG WINAPI CloseTrace(TRACEHANDLE);
+ULONG WINAPI EnableTrace(ULONG,ULONG,ULONG,LPCGUID,TRACEHANDLE);
+ULONG WINAPI RegisterTraceGuidsA(WMIDPREQUEST,PVOID,LPCGUID,ULONG,PTRACE_GUID_REGISTRATION,LPCSTR,LPCSTR,PTRACEHANDLE);
+ULONG WINAPI RegisterTraceGuidsW(WMIDPREQUEST,PVOID,LPCGUID,ULONG,PTRACE_GUID_REGISTRATION,LPCWSTR,LPCWSTR,PTRACEHANDLE);
+#define      RegisterTraceGuids WINELIB_NAME_AW(RegisterTraceGuids)
+
+#endif /* _EVNTRACE_ */
diff --git a/include/wmistr.h b/include/wmistr.h
new file mode 100644
index 00000000000..c0db93612a5
--- /dev/null
+++ b/include/wmistr.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2005 Mike McCormack
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef _WMISTR_
+#define _WMISTR_
+
+typedef enum
+{
+    WMI_GET_ALL_DATA = 0,
+    WMI_GET_SINGLE_INSTANCE = 1,
+    WMI_SET_SINGLE_INSTANCE = 2,
+    WMI_SET_SINGLE_ITEM = 3,
+    WMI_ENABLE_EVENTS = 4,
+    WMI_DISABLE_EVENTS = 5,
+    WMI_ENABLE_CONNECTION = 6,
+    WMI_DISABLE_CONNECTION = 7,
+    WMI_REGINFO = 8,
+    WMI_EXECUTE_METHOD = 9,
+} WMIDPREQUESTCODE;
+
+#endif /* _WMISTR_ */
-- 
GitLab