From 8f983be0b585fc1e8d9354f604280fe51677f143 Mon Sep 17 00:00:00 2001 From: Mike McCormack 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 fb17cbecd0..11e7bd09b5 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 0000000000..e0e45d9244 --- /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 + +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 0000000000..c0db93612a --- /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_ */ -- 2.32.0.93.g670b81a890