ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

evntrace.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #define _EVNTRACE_
00004 
00005 #ifndef WMIAPI
00006 #ifndef MIDL_PASS
00007 #ifdef _WMI_SOURCE_
00008 #define WMIAPI __stdcall
00009 #else
00010 #define WMIAPI DECLSPEC_IMPORT __stdcall
00011 #endif
00012 #endif /* MIDL_PASS */
00013 #endif /* WMIAPI */
00014 
00015 #include <guiddef.h>
00016 
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020 
00021 DEFINE_GUID (EventTraceGuid, 0x68fdd900, 0x4a3e, 0x11d1, 0x84, 0xf4, 0x00, 0x00, 0xf8, 0x04, 0x64, 0xe3);
00022 DEFINE_GUID (SystemTraceControlGuid, 0x9e814aad, 0x3204, 0x11d2, 0x9a, 0x82, 0x00, 0x60, 0x08, 0xa8, 0x69, 0x39);
00023 DEFINE_GUID (EventTraceConfigGuid, 0x01853a65, 0x418f, 0x4f36, 0xae, 0xfc, 0xdc, 0x0f, 0x1d, 0x2f, 0xd2, 0x35);
00024 DEFINE_GUID (DefaultTraceSecurityGuid, 0x0811c1af, 0x7a07, 0x4a06, 0x82, 0xed, 0x86, 0x94, 0x55, 0xcd, 0xf7, 0x13);
00025 
00026 #define KERNEL_LOGGER_NAMEW                 L"NT Kernel Logger"
00027 #define GLOBAL_LOGGER_NAMEW                 L"GlobalLogger"
00028 #define EVENT_LOGGER_NAMEW                  L"EventLog"
00029 #define DIAG_LOGGER_NAMEW                   L"DiagLog"
00030 
00031 #define KERNEL_LOGGER_NAMEA                 "NT Kernel Logger"
00032 #define GLOBAL_LOGGER_NAMEA                 "GlobalLogger"
00033 #define EVENT_LOGGER_NAMEA                  "EventLog"
00034 #define DIAG_LOGGER_NAMEA                   "DiagLog"
00035 
00036 #define MAX_MOF_FIELDS                      16
00037 
00038 #ifndef _TRACEHANDLE_DEFINED
00039 #define _TRACEHANDLE_DEFINED
00040 typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
00041 #endif
00042 
00043 #define SYSTEM_EVENT_TYPE                   1
00044 
00045 #define EVENT_TRACE_TYPE_INFO               0x00
00046 #define EVENT_TRACE_TYPE_START              0x01
00047 #define EVENT_TRACE_TYPE_END                0x02
00048 #define EVENT_TRACE_TYPE_STOP               0x02
00049 #define EVENT_TRACE_TYPE_DC_START           0x03
00050 #define EVENT_TRACE_TYPE_DC_END             0x04
00051 #define EVENT_TRACE_TYPE_EXTENSION          0x05
00052 #define EVENT_TRACE_TYPE_REPLY              0x06
00053 #define EVENT_TRACE_TYPE_DEQUEUE            0x07
00054 #define EVENT_TRACE_TYPE_RESUME             0x07
00055 #define EVENT_TRACE_TYPE_CHECKPOINT         0x08
00056 #define EVENT_TRACE_TYPE_SUSPEND            0x08
00057 #define EVENT_TRACE_TYPE_WINEVT_SEND        0x09
00058 #define EVENT_TRACE_TYPE_WINEVT_RECEIVE     0XF0
00059 
00060 #define TRACE_LEVEL_NONE                    0
00061 #define TRACE_LEVEL_CRITICAL                1
00062 #define TRACE_LEVEL_FATAL                   1
00063 #define TRACE_LEVEL_ERROR                   2
00064 #define TRACE_LEVEL_WARNING                 3
00065 #define TRACE_LEVEL_INFORMATION             4
00066 #define TRACE_LEVEL_VERBOSE                 5
00067 #define TRACE_LEVEL_RESERVED6               6
00068 #define TRACE_LEVEL_RESERVED7               7
00069 #define TRACE_LEVEL_RESERVED8               8
00070 #define TRACE_LEVEL_RESERVED9               9
00071 
00072 #define EVENT_TRACE_TYPE_LOAD               0x0A
00073 
00074 #define EVENT_TRACE_TYPE_IO_READ            0x0A
00075 #define EVENT_TRACE_TYPE_IO_WRITE           0x0B
00076 #define EVENT_TRACE_TYPE_IO_READ_INIT       0x0C
00077 #define EVENT_TRACE_TYPE_IO_WRITE_INIT      0x0D
00078 #define EVENT_TRACE_TYPE_IO_FLUSH           0x0E
00079 #define EVENT_TRACE_TYPE_IO_FLUSH_INIT      0x0F
00080 
00081 #define EVENT_TRACE_TYPE_MM_TF              0x0A
00082 #define EVENT_TRACE_TYPE_MM_DZF             0x0B
00083 #define EVENT_TRACE_TYPE_MM_COW             0x0C
00084 #define EVENT_TRACE_TYPE_MM_GPF             0x0D
00085 #define EVENT_TRACE_TYPE_MM_HPF             0x0E
00086 #define EVENT_TRACE_TYPE_MM_AV              0x0F
00087 
00088 #define EVENT_TRACE_TYPE_SEND               0x0A
00089 #define EVENT_TRACE_TYPE_RECEIVE            0x0B
00090 #define EVENT_TRACE_TYPE_CONNECT            0x0C
00091 #define EVENT_TRACE_TYPE_DISCONNECT         0x0D
00092 #define EVENT_TRACE_TYPE_RETRANSMIT         0x0E
00093 #define EVENT_TRACE_TYPE_ACCEPT             0x0F
00094 #define EVENT_TRACE_TYPE_RECONNECT          0x10
00095 #define EVENT_TRACE_TYPE_CONNFAIL           0x11
00096 #define EVENT_TRACE_TYPE_COPY_TCP           0x12
00097 #define EVENT_TRACE_TYPE_COPY_ARP           0x13
00098 #define EVENT_TRACE_TYPE_ACKFULL            0x14
00099 #define EVENT_TRACE_TYPE_ACKPART            0x15
00100 #define EVENT_TRACE_TYPE_ACKDUP             0x16
00101 
00102 #define EVENT_TRACE_TYPE_GUIDMAP            0x0A
00103 #define EVENT_TRACE_TYPE_CONFIG             0x0B
00104 #define EVENT_TRACE_TYPE_SIDINFO            0x0C
00105 #define EVENT_TRACE_TYPE_SECURITY           0x0D
00106 
00107 #define EVENT_TRACE_TYPE_REGCREATE          0x0A
00108 #define EVENT_TRACE_TYPE_REGOPEN            0x0B
00109 #define EVENT_TRACE_TYPE_REGDELETE          0x0C
00110 #define EVENT_TRACE_TYPE_REGQUERY           0x0D
00111 #define EVENT_TRACE_TYPE_REGSETVALUE        0x0E
00112 #define EVENT_TRACE_TYPE_REGDELETEVALUE     0x0F
00113 #define EVENT_TRACE_TYPE_REGQUERYVALUE      0x10
00114 #define EVENT_TRACE_TYPE_REGENUMERATEKEY    0x11
00115 #define EVENT_TRACE_TYPE_REGENUMERATEVALUEKEY 0x12
00116 #define EVENT_TRACE_TYPE_REGQUERYMULTIPLEVALUE 0x13
00117 #define EVENT_TRACE_TYPE_REGSETINFORMATION  0x14
00118 #define EVENT_TRACE_TYPE_REGFLUSH           0x15
00119 #define EVENT_TRACE_TYPE_REGKCBCREATE       0x16
00120 #define EVENT_TRACE_TYPE_REGKCBDELETE       0x17
00121 #define EVENT_TRACE_TYPE_REGKCBRUNDOWNBEGIN 0x18
00122 #define EVENT_TRACE_TYPE_REGKCBRUNDOWNEND   0x19
00123 #define EVENT_TRACE_TYPE_REGVIRTUALIZE      0x1A
00124 #define EVENT_TRACE_TYPE_REGCLOSE           0x1B
00125 #define EVENT_TRACE_TYPE_REGSETSECURITY     0x1C
00126 #define EVENT_TRACE_TYPE_REGQUERYSECURITY   0x1D
00127 #define EVENT_TRACE_TYPE_REGCOMMIT          0x1E
00128 #define EVENT_TRACE_TYPE_REGPREPARE         0x1F
00129 #define EVENT_TRACE_TYPE_REGROLLBACK        0x20
00130 #define EVENT_TRACE_TYPE_REGMOUNTHIVE       0x21
00131 
00132 #define EVENT_TRACE_TYPE_CONFIG_CPU         0x0A
00133 #define EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK 0x0B
00134 #define EVENT_TRACE_TYPE_CONFIG_LOGICALDISK 0x0C
00135 #define EVENT_TRACE_TYPE_CONFIG_NIC         0x0D
00136 #define EVENT_TRACE_TYPE_CONFIG_VIDEO       0x0E
00137 #define EVENT_TRACE_TYPE_CONFIG_SERVICES    0x0F
00138 #define EVENT_TRACE_TYPE_CONFIG_POWER       0x10
00139 #define EVENT_TRACE_TYPE_CONFIG_NETINFO     0x11
00140 
00141 #define EVENT_TRACE_TYPE_CONFIG_IRQ         0x15
00142 #define EVENT_TRACE_TYPE_CONFIG_PNP         0x16
00143 #define EVENT_TRACE_TYPE_CONFIG_IDECHANNEL  0x17
00144 #define EVENT_TRACE_TYPE_CONFIG_PLATFORM    0x19
00145 
00146 #define EVENT_TRACE_FLAG_PROCESS            0x00000001
00147 #define EVENT_TRACE_FLAG_THREAD             0x00000002
00148 #define EVENT_TRACE_FLAG_IMAGE_LOAD         0x00000004
00149 
00150 #define EVENT_TRACE_FLAG_DISK_IO            0x00000100
00151 #define EVENT_TRACE_FLAG_DISK_FILE_IO       0x00000200
00152 
00153 #define EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS 0x00001000
00154 #define EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS 0x00002000
00155 
00156 #define EVENT_TRACE_FLAG_NETWORK_TCPIP      0x00010000
00157 
00158 #define EVENT_TRACE_FLAG_REGISTRY           0x00020000
00159 #define EVENT_TRACE_FLAG_DBGPRINT           0x00040000
00160 
00161 #define EVENT_TRACE_FLAG_PROCESS_COUNTERS   0x00000008
00162 #define EVENT_TRACE_FLAG_CSWITCH            0x00000010
00163 #define EVENT_TRACE_FLAG_DPC                0x00000020
00164 #define EVENT_TRACE_FLAG_INTERRUPT          0x00000040
00165 #define EVENT_TRACE_FLAG_SYSTEMCALL         0x00000080
00166 
00167 #define EVENT_TRACE_FLAG_DISK_IO_INIT       0x00000400
00168 
00169 #define EVENT_TRACE_FLAG_ALPC               0x00100000
00170 #define EVENT_TRACE_FLAG_SPLIT_IO           0x00200000
00171 
00172 #define EVENT_TRACE_FLAG_DRIVER             0x00800000
00173 #define EVENT_TRACE_FLAG_PROFILE            0x01000000
00174 #define EVENT_TRACE_FLAG_FILE_IO            0x02000000
00175 #define EVENT_TRACE_FLAG_FILE_IO_INIT       0x04000000
00176 
00177 #define EVENT_TRACE_FLAG_DISPATCHER         0x00000800
00178 #define EVENT_TRACE_FLAG_VIRTUAL_ALLOC      0x00004000
00179 
00180 #define EVENT_TRACE_FLAG_EXTENSION          0x80000000
00181 #define EVENT_TRACE_FLAG_FORWARD_WMI        0x40000000
00182 #define EVENT_TRACE_FLAG_ENABLE_RESERVE     0x20000000
00183 
00184 #define EVENT_TRACE_FILE_MODE_NONE          0x00000000
00185 #define EVENT_TRACE_FILE_MODE_SEQUENTIAL    0x00000001
00186 #define EVENT_TRACE_FILE_MODE_CIRCULAR      0x00000002
00187 #define EVENT_TRACE_FILE_MODE_APPEND        0x00000004
00188 
00189 #define EVENT_TRACE_REAL_TIME_MODE          0x00000100
00190 #define EVENT_TRACE_DELAY_OPEN_FILE_MODE    0x00000200
00191 #define EVENT_TRACE_BUFFERING_MODE          0x00000400
00192 #define EVENT_TRACE_PRIVATE_LOGGER_MODE     0x00000800
00193 #define EVENT_TRACE_ADD_HEADER_MODE         0x00001000
00194 
00195 #define EVENT_TRACE_USE_GLOBAL_SEQUENCE     0x00004000
00196 #define EVENT_TRACE_USE_LOCAL_SEQUENCE      0x00008000
00197 
00198 #define EVENT_TRACE_RELOG_MODE              0x00010000
00199 
00200 #define EVENT_TRACE_USE_PAGED_MEMORY        0x01000000
00201 
00202 #define EVENT_TRACE_FILE_MODE_NEWFILE       0x00000008
00203 #define EVENT_TRACE_FILE_MODE_PREALLOCATE   0x00000020
00204 
00205 #define EVENT_TRACE_NONSTOPPABLE_MODE       0x00000040
00206 #define EVENT_TRACE_SECURE_MODE             0x00000080
00207 #define EVENT_TRACE_USE_KBYTES_FOR_SIZE     0x00002000
00208 #define EVENT_TRACE_PRIVATE_IN_PROC         0x00020000
00209 #define EVENT_TRACE_MODE_RESERVED           0x00100000
00210 
00211 #define EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 0x10000000
00212 
00213 #define EVENT_TRACE_CONTROL_QUERY           0
00214 #define EVENT_TRACE_CONTROL_STOP            1
00215 #define EVENT_TRACE_CONTROL_UPDATE          2
00216 
00217 #define EVENT_TRACE_CONTROL_FLUSH           3
00218 
00219 #define TRACE_MESSAGE_SEQUENCE              1
00220 #define TRACE_MESSAGE_GUID                  2
00221 #define TRACE_MESSAGE_COMPONENTID           4
00222 #define TRACE_MESSAGE_TIMESTAMP             8
00223 #define TRACE_MESSAGE_PERFORMANCE_TIMESTAMP 16
00224 #define TRACE_MESSAGE_SYSTEMINFO            32
00225 
00226 #define TRACE_MESSAGE_POINTER32             0x0040
00227 #define TRACE_MESSAGE_POINTER64             0x0080
00228 
00229 #define TRACE_MESSAGE_FLAG_MASK             0xFFFF
00230 
00231 #define TRACE_MESSAGE_MAXIMUM_SIZE          8*1024
00232 
00233 #define EVENT_TRACE_USE_PROCTIME            0x0001
00234 #define EVENT_TRACE_USE_NOCPUTIME           0x0002
00235 
00236 #define TRACE_HEADER_FLAG_USE_TIMESTAMP     0x00000200
00237 #define TRACE_HEADER_FLAG_TRACED_GUID       0x00020000
00238 #define TRACE_HEADER_FLAG_LOG_WNODE         0x00040000
00239 #define TRACE_HEADER_FLAG_USE_GUID_PTR      0x00080000
00240 #define TRACE_HEADER_FLAG_USE_MOF_PTR       0x00100000
00241 
00242 #define ETW_NULL_TYPE_VALUE                 0
00243 #define ETW_OBJECT_TYPE_VALUE               1
00244 #define ETW_STRING_TYPE_VALUE               2
00245 #define ETW_SBYTE_TYPE_VALUE                3
00246 #define ETW_BYTE_TYPE_VALUE                 4
00247 #define ETW_INT16_TYPE_VALUE                5
00248 #define ETW_UINT16_TYPE_VALUE               6
00249 #define ETW_INT32_TYPE_VALUE                7
00250 #define ETW_UINT32_TYPE_VALUE               8
00251 #define ETW_INT64_TYPE_VALUE                9
00252 #define ETW_UINT64_TYPE_VALUE               10
00253 #define ETW_CHAR_TYPE_VALUE                 11
00254 #define ETW_SINGLE_TYPE_VALUE               12
00255 #define ETW_DOUBLE_TYPE_VALUE               13
00256 #define ETW_BOOLEAN_TYPE_VALUE              14
00257 #define ETW_DECIMAL_TYPE_VALUE              15
00258 
00259 #define ETW_GUID_TYPE_VALUE                 101
00260 #define ETW_ASCIICHAR_TYPE_VALUE            102
00261 #define ETW_ASCIISTRING_TYPE_VALUE          103
00262 #define ETW_COUNTED_STRING_TYPE_VALUE       104
00263 #define ETW_POINTER_TYPE_VALUE              105
00264 #define ETW_SIZET_TYPE_VALUE                106
00265 #define ETW_HIDDEN_TYPE_VALUE               107
00266 #define ETW_BOOL_TYPE_VALUE                 108
00267 #define ETW_COUNTED_ANSISTRING_TYPE_VALUE   109
00268 #define ETW_REVERSED_COUNTED_STRING_TYPE_VALUE 110
00269 #define ETW_REVERSED_COUNTED_ANSISTRING_TYPE_VALUE 111
00270 #define ETW_NON_NULL_TERMINATED_STRING_TYPE_VALUE 112
00271 #define ETW_REDUCED_ANSISTRING_TYPE_VALUE   113
00272 #define ETW_REDUCED_STRING_TYPE_VALUE       114
00273 #define ETW_SID_TYPE_VALUE                  115
00274 #define ETW_VARIANT_TYPE_VALUE              116
00275 #define ETW_PTVECTOR_TYPE_VALUE             117
00276 #define ETW_WMITIME_TYPE_VALUE              118
00277 #define ETW_DATETIME_TYPE_VALUE             119
00278 #define ETW_REFRENCE_TYPE_VALUE             120
00279 
00280 #define TRACE_PROVIDER_FLAG_LEGACY          0x00000001
00281 #define TRACE_PROVIDER_FLAG_PRE_ENABLE      0x00000002
00282 
00283 #define EVENT_CONTROL_CODE_DISABLE_PROVIDER 0
00284 #define EVENT_CONTROL_CODE_ENABLE_PROVIDER  1
00285 #define EVENT_CONTROL_CODE_CAPTURE_STATE    2
00286 
00287 #define DEFINE_TRACE_MOF_FIELD(MOF, ptr, length, type) \
00288   (MOF)->DataPtr = (ULONG64)(ULONG_PTR) ptr; \
00289   (MOF)->Length = (ULONG) length; \
00290   (MOF)->DataType = (ULONG) type;
00291 
00292 typedef struct _EVENT_TRACE_HEADER {
00293   USHORT Size;
00294   _ANONYMOUS_UNION union {
00295     USHORT FieldTypeFlags;
00296     _ANONYMOUS_STRUCT struct {
00297       UCHAR HeaderType;
00298       UCHAR MarkerFlags;
00299     } DUMMYSTRUCTNAME;
00300   } DUMMYUNIONNAME;
00301   _ANONYMOUS_UNION union {
00302     ULONG Version;
00303     struct {
00304       UCHAR Type;
00305       UCHAR Level;
00306       USHORT Version;
00307     } Class;
00308   } DUMMYUNIONNAME2;
00309   ULONG ThreadId;
00310   ULONG ProcessId;
00311   LARGE_INTEGER TimeStamp;
00312   _ANONYMOUS_UNION union {
00313     GUID Guid;
00314     ULONGLONG GuidPtr;
00315   } DUMMYUNIONNAME3;
00316   _ANONYMOUS_UNION union {
00317     _ANONYMOUS_STRUCT struct {
00318       ULONG KernelTime;
00319       ULONG UserTime;
00320     } DUMMYSTRUCTNAME;
00321     ULONG64 ProcessorTime;
00322     _ANONYMOUS_STRUCT struct {
00323       ULONG ClientContext;
00324       ULONG Flags;
00325     } DUMMYSTRUCTNAME2;
00326   } DUMMYUNIONNAME4;
00327 } EVENT_TRACE_HEADER;
00328 
00329 #ifndef PEVENT_TRACE_HEADER_DEFINED
00330 #define PEVENT_TRACE_HEADER_DEFINED
00331 typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER;
00332 #endif
00333 
00334 typedef struct _EVENT_INSTANCE_HEADER {
00335   USHORT Size;
00336   _ANONYMOUS_UNION union {
00337     USHORT FieldTypeFlags;
00338     _ANONYMOUS_STRUCT struct {
00339       UCHAR HeaderType;
00340       UCHAR MarkerFlags;
00341     } DUMMYSTRUCTNAME;
00342   } DUMMYUNIONNAME;
00343   _ANONYMOUS_UNION union {
00344     ULONG Version;
00345     struct {
00346       UCHAR Type;
00347       UCHAR Level;
00348       USHORT Version;
00349     } Class;
00350   } DUMMYUNIONNAME2;
00351   ULONG ThreadId;
00352   ULONG ProcessId;
00353   LARGE_INTEGER TimeStamp;
00354   ULONGLONG RegHandle;
00355   ULONG InstanceId;
00356   ULONG ParentInstanceId;
00357   _ANONYMOUS_UNION union {
00358     _ANONYMOUS_STRUCT struct {
00359       ULONG KernelTime;
00360       ULONG UserTime;
00361     } DUMMYSTRUCTNAME;
00362     ULONG64 ProcessorTime;
00363     _ANONYMOUS_STRUCT struct {
00364       ULONG EventId;
00365       ULONG Flags;
00366     } DUMMYSTRUCTNAME2;
00367   } DUMMYUNIONNAME3;
00368   ULONGLONG ParentRegHandle;
00369 } EVENT_INSTANCE_HEADER, *PEVENT_INSTANCE_HEADER;
00370 
00371 typedef struct _MOF_FIELD {
00372   ULONG64 DataPtr;
00373   ULONG Length;
00374   ULONG DataType;
00375 } MOF_FIELD, *PMOF_FIELD;
00376 
00377 typedef struct _EVENT_INSTANCE_INFO {
00378   HANDLE RegHandle;
00379   ULONG InstanceId;
00380 } EVENT_INSTANCE_INFO, *PEVENT_INSTANCE_INFO;
00381 
00382 typedef struct _TRACE_GUID_PROPERTIES {
00383   GUID Guid;
00384   ULONG GuidType;
00385   ULONG LoggerId;
00386   ULONG EnableLevel;
00387   ULONG EnableFlags;
00388   BOOLEAN IsEnable;
00389 } TRACE_GUID_PROPERTIES, *PTRACE_GUID_PROPERTIES;
00390 
00391 typedef struct _ETW_BUFFER_CONTEXT {
00392   UCHAR ProcessorNumber;
00393   UCHAR Alignment;
00394   USHORT LoggerId;
00395 } ETW_BUFFER_CONTEXT, *PETW_BUFFER_CONTEXT;
00396 
00397 typedef struct _TRACE_ENABLE_INFO {
00398   ULONG IsEnabled;
00399   UCHAR Level;
00400   UCHAR Reserved1;
00401   USHORT LoggerId;
00402   ULONG EnableProperty;
00403   ULONG Reserved2;
00404   ULONGLONG MatchAnyKeyword;
00405   ULONGLONG MatchAllKeyword;
00406 } TRACE_ENABLE_INFO, *PTRACE_ENABLE_INFO;
00407 
00408 typedef struct _TRACE_PROVIDER_INSTANCE_INFO {
00409   ULONG NextOffset;
00410   ULONG EnableCount;
00411   ULONG Pid;
00412   ULONG Flags;
00413 } TRACE_PROVIDER_INSTANCE_INFO, *PTRACE_PROVIDER_INSTANCE_INFO;
00414 
00415 typedef struct _TRACE_GUID_INFO {
00416   ULONG InstanceCount;
00417   ULONG Reserved;
00418 } TRACE_GUID_INFO, *PTRACE_GUID_INFO;
00419 
00420 typedef struct _EVENT_TRACE {
00421   EVENT_TRACE_HEADER Header;
00422   ULONG InstanceId;
00423   ULONG ParentInstanceId;
00424   GUID ParentGuid;
00425   PVOID MofData;
00426   ULONG MofLength;
00427   _ANONYMOUS_UNION union {
00428     ULONG ClientContext;
00429     ETW_BUFFER_CONTEXT BufferContext;
00430   } DUMMYUNIONNAME;
00431 } EVENT_TRACE, *PEVENT_TRACE;
00432 
00433 #if !(defined(_NTDDK_) || defined(_NTIFS_)) || defined(_WMIKM_)
00434 
00435 typedef struct _TRACE_LOGFILE_HEADER {
00436   ULONG BufferSize;
00437   _ANONYMOUS_UNION union {
00438     ULONG Version;
00439     struct {
00440       UCHAR MajorVersion;
00441       UCHAR MinorVersion;
00442       UCHAR SubVersion;
00443       UCHAR SubMinorVersion;
00444     } VersionDetail;
00445   } DUMMYUNIONNAME;
00446   ULONG ProviderVersion;
00447   ULONG NumberOfProcessors;
00448   LARGE_INTEGER EndTime;
00449   ULONG TimerResolution;
00450   ULONG MaximumFileSize;
00451   ULONG LogFileMode;
00452   ULONG BuffersWritten;
00453   _ANONYMOUS_UNION union {
00454     GUID LogInstanceGuid;
00455     _ANONYMOUS_STRUCT struct {
00456       ULONG StartBuffers;
00457       ULONG PointerSize;
00458       ULONG EventsLost;
00459       ULONG CpuSpeedInMHz;
00460     } DUMMYSTRUCTNAME;
00461   } DUMMYUNIONNAME2;
00462 #if defined(_WMIKM_)
00463   PWCHAR LoggerName;
00464   PWCHAR LogFileName;
00465   RTL_TIME_ZONE_INFORMATION TimeZone;
00466 #else
00467   LPWSTR LoggerName;
00468   LPWSTR LogFileName;
00469   TIME_ZONE_INFORMATION TimeZone;
00470 #endif
00471   LARGE_INTEGER BootTime;
00472   LARGE_INTEGER PerfFreq;
00473   LARGE_INTEGER StartTime;
00474   ULONG ReservedFlags;
00475   ULONG BuffersLost;
00476 } TRACE_LOGFILE_HEADER, *PTRACE_LOGFILE_HEADER;
00477 
00478 typedef struct _TRACE_LOGFILE_HEADER32 {
00479   ULONG BufferSize;
00480   _ANONYMOUS_UNION union {
00481     ULONG Version;
00482     struct {
00483       UCHAR MajorVersion;
00484       UCHAR MinorVersion;
00485       UCHAR SubVersion;
00486       UCHAR SubMinorVersion;
00487     } VersionDetail;
00488   } DUMMYUNIONNAME;
00489   ULONG ProviderVersion;
00490   ULONG NumberOfProcessors;
00491   LARGE_INTEGER EndTime;
00492   ULONG TimerResolution;
00493   ULONG MaximumFileSize;
00494   ULONG LogFileMode;
00495   ULONG BuffersWritten;
00496   _ANONYMOUS_UNION union {
00497     GUID LogInstanceGuid;
00498     _ANONYMOUS_STRUCT struct {
00499       ULONG StartBuffers;
00500       ULONG PointerSize;
00501       ULONG EventsLost;
00502       ULONG CpuSpeedInMHz;
00503     } DUMMYSTRUCTNAME;
00504   } DUMMYUNIONNAME2;
00505 #if defined(_WMIKM_)
00506   ULONG32 LoggerName;
00507   ULONG32 LogFileName;
00508   RTL_TIME_ZONE_INFORMATION TimeZone;
00509 #else
00510   ULONG32 LoggerName;
00511   ULONG32 LogFileName;
00512   TIME_ZONE_INFORMATION TimeZone;
00513 #endif
00514   LARGE_INTEGER BootTime;
00515   LARGE_INTEGER PerfFreq;
00516   LARGE_INTEGER StartTime;
00517   ULONG ReservedFlags;
00518   ULONG BuffersLost;
00519 } TRACE_LOGFILE_HEADER32, *PTRACE_LOGFILE_HEADER32;
00520 
00521 typedef struct _TRACE_LOGFILE_HEADER64 {
00522   ULONG BufferSize;
00523   _ANONYMOUS_UNION union {
00524     ULONG Version;
00525     struct {
00526       UCHAR MajorVersion;
00527       UCHAR MinorVersion;
00528       UCHAR SubVersion;
00529       UCHAR SubMinorVersion;
00530     } VersionDetail;
00531   } DUMMYUNIONNAME;
00532   ULONG ProviderVersion;
00533   ULONG NumberOfProcessors;
00534   LARGE_INTEGER EndTime;
00535   ULONG TimerResolution;
00536   ULONG MaximumFileSize;
00537   ULONG LogFileMode;
00538   ULONG BuffersWritten;
00539   _ANONYMOUS_UNION union {
00540     GUID LogInstanceGuid;
00541     _ANONYMOUS_STRUCT struct {
00542       ULONG StartBuffers;
00543       ULONG PointerSize;
00544       ULONG EventsLost;
00545       ULONG CpuSpeedInMHz;
00546     } DUMMYSTRUCTNAME;
00547   } DUMMYUNIONNAME2;
00548 #if defined(_WMIKM_)
00549   ULONG64 LoggerName;
00550   ULONG64 LogFileName;
00551   RTL_TIME_ZONE_INFORMATION TimeZone;
00552 #else
00553   ULONG64 LoggerName;
00554   ULONG64 LogFileName;
00555   TIME_ZONE_INFORMATION TimeZone;
00556 #endif
00557   LARGE_INTEGER BootTime;
00558   LARGE_INTEGER PerfFreq;
00559   LARGE_INTEGER StartTime;
00560   ULONG ReservedFlags;
00561   ULONG BuffersLost;
00562 } TRACE_LOGFILE_HEADER64, *PTRACE_LOGFILE_HEADER64;
00563 
00564 #endif /* !_NTDDK_ || _WMIKM_ */
00565 
00566 #if !defined(_WMIKM_) && !defined(_NTDDK_) && !defined(_NTIFS_)
00567 
00568 #define ENABLE_TRACE_PARAMETERS_VERSION     1
00569 
00570 typedef struct _EVENT_TRACE_PROPERTIES {
00571   WNODE_HEADER Wnode;
00572   ULONG BufferSize;
00573   ULONG MinimumBuffers;
00574   ULONG MaximumBuffers;
00575   ULONG MaximumFileSize;
00576   ULONG LogFileMode;
00577   ULONG FlushTimer;
00578   ULONG EnableFlags;
00579   LONG  AgeLimit;
00580   ULONG NumberOfBuffers;
00581   ULONG FreeBuffers;
00582   ULONG EventsLost;
00583   ULONG BuffersWritten;
00584   ULONG LogBuffersLost;
00585   ULONG RealTimeBuffersLost;
00586   HANDLE LoggerThreadId;
00587   ULONG LogFileNameOffset;
00588   ULONG LoggerNameOffset;
00589 } EVENT_TRACE_PROPERTIES, *PEVENT_TRACE_PROPERTIES;
00590 
00591 typedef struct _TRACE_GUID_REGISTRATION {
00592   LPCGUID Guid;
00593   HANDLE RegHandle;
00594 } TRACE_GUID_REGISTRATION, *PTRACE_GUID_REGISTRATION;
00595 
00596 typedef struct _EVENT_RECORD EVENT_RECORD, *PEVENT_RECORD;
00597 typedef struct _EVENT_TRACE_LOGFILEW EVENT_TRACE_LOGFILEW, *PEVENT_TRACE_LOGFILEW;
00598 typedef struct _EVENT_TRACE_LOGFILEA EVENT_TRACE_LOGFILEA, *PEVENT_TRACE_LOGFILEA;
00599 #ifndef _EVNTPROV_
00600 typedef struct _EVENT_FILTER_DESCRIPTOR EVENT_FILTER_DESCRIPTOR, *PEVENT_FILTER_DESCRIPTOR;
00601 #endif
00602 
00603 typedef ULONG
00604 (WINAPI *PEVENT_TRACE_BUFFER_CALLBACKW)(
00605   PEVENT_TRACE_LOGFILEW Logfile);
00606 
00607 typedef ULONG
00608 (WINAPI *PEVENT_TRACE_BUFFER_CALLBACKA)(
00609   PEVENT_TRACE_LOGFILEA Logfile);
00610 
00611 typedef VOID
00612 (WINAPI *PEVENT_CALLBACK)(
00613   PEVENT_TRACE pEvent );
00614 
00615 typedef VOID
00616 (WINAPI *PEVENT_RECORD_CALLBACK)(
00617   PEVENT_RECORD EventRecord);
00618 
00619 typedef ULONG
00620 (WINAPI *WMIDPREQUEST)(
00621   IN WMIDPREQUESTCODE RequestCode,
00622   IN PVOID RequestContext,
00623   IN OUT ULONG *BufferSize,
00624   IN OUT PVOID Buffer);
00625 
00626 struct _EVENT_TRACE_LOGFILEW {
00627   LPWSTR LogFileName;
00628   LPWSTR LoggerName;
00629   LONGLONG CurrentTime;
00630   ULONG BuffersRead;
00631   _ANONYMOUS_UNION union {
00632     ULONG LogFileMode;
00633     ULONG ProcessTraceMode;
00634   } DUMMYUNIONNAME;
00635   EVENT_TRACE CurrentEvent;
00636   TRACE_LOGFILE_HEADER LogfileHeader;
00637   PEVENT_TRACE_BUFFER_CALLBACKW BufferCallback;
00638   ULONG BufferSize;
00639   ULONG Filled;
00640   ULONG EventsLost;
00641   _ANONYMOUS_UNION union {
00642     PEVENT_CALLBACK EventCallback;
00643     PEVENT_RECORD_CALLBACK EventRecordCallback;
00644   } DUMMYUNIONNAME2;
00645   ULONG IsKernelTrace;
00646   PVOID Context;
00647 };
00648 
00649 struct _EVENT_TRACE_LOGFILEA {
00650   LPSTR LogFileName;
00651   LPSTR LoggerName;
00652   LONGLONG CurrentTime;
00653   ULONG BuffersRead;
00654   _ANONYMOUS_UNION union {
00655     ULONG LogFileMode;
00656     ULONG ProcessTraceMode;
00657   } DUMMYUNIONNAME;
00658   EVENT_TRACE CurrentEvent;
00659   TRACE_LOGFILE_HEADER LogfileHeader;
00660   PEVENT_TRACE_BUFFER_CALLBACKA BufferCallback;
00661   ULONG BufferSize;
00662   ULONG Filled;
00663   ULONG EventsLost;
00664   _ANONYMOUS_UNION union {
00665     PEVENT_CALLBACK EventCallback;
00666     PEVENT_RECORD_CALLBACK EventRecordCallback;
00667   } DUMMYUNIONNAME2;
00668   ULONG IsKernelTrace;
00669   PVOID Context;
00670 };
00671 
00672 #if defined(_UNICODE) || defined(UNICODE)
00673 
00674 #define PEVENT_TRACE_BUFFER_CALLBACK PEVENT_TRACE_BUFFER_CALLBACKW
00675 #define EVENT_TRACE_LOGFILE EVENT_TRACE_LOGFILEW
00676 #define PEVENT_TRACE_LOGFILE PEVENT_TRACE_LOGFILEW
00677 #define KERNEL_LOGGER_NAME KERNEL_LOGGER_NAMEW
00678 #define GLOBAL_LOGGER_NAME GLOBAL_LOGGER_NAMEW
00679 #define EVENT_LOGGER_NAME EVENT_LOGGER_NAMEW
00680 
00681 #else
00682 
00683 #define PEVENT_TRACE_BUFFER_CALLBACK PEVENT_TRACE_BUFFER_CALLBACKA
00684 #define EVENT_TRACE_LOGFILE EVENT_TRACE_LOGFILEA
00685 #define PEVENT_TRACE_LOGFILE PEVENT_TRACE_LOGFILEA
00686 #define KERNEL_LOGGER_NAME KERNEL_LOGGER_NAMEA
00687 #define GLOBAL_LOGGER_NAME GLOBAL_LOGGER_NAMEA
00688 #define EVENT_LOGGER_NAME EVENT_LOGGER_NAMEA
00689 
00690 #endif /* defined(_UNICODE) || defined(UNICODE) */
00691 
00692 typedef enum _TRACE_QUERY_INFO_CLASS {
00693   TraceGuidQueryList,
00694   TraceGuidQueryInfo,
00695   TraceGuidQueryProcess,
00696   TraceStackTracingInfo,
00697   MaxTraceSetInfoClass
00698 } TRACE_QUERY_INFO_CLASS, TRACE_INFO_CLASS;
00699 
00700 typedef struct _CLASSIC_EVENT_ID {
00701   GUID EventGuid;
00702   UCHAR Type;
00703   UCHAR Reserved[7];
00704 } CLASSIC_EVENT_ID, *PCLASSIC_EVENT_ID;
00705 
00706 typedef struct _ENABLE_TRACE_PARAMETERS {
00707   ULONG Version;
00708   ULONG EnableProperty;
00709   ULONG ControlFlags;
00710   GUID SourceId;
00711   PEVENT_FILTER_DESCRIPTOR EnableFilterDesc;
00712 } ENABLE_TRACE_PARAMETERS, *PENABLE_TRACE_PARAMETERS;
00713 
00714 #define INVALID_PROCESSTRACE_HANDLE ((TRACEHANDLE)INVALID_HANDLE_VALUE)
00715 
00716 #if defined(UNICODE) || defined(_UNICODE)
00717 
00718 #define RegisterTraceGuids RegisterTraceGuidsW
00719 #define StartTrace StartTraceW
00720 #define ControlTrace ControlTraceW
00721 
00722 #if defined(__TRACE_W2K_COMPATIBLE)
00723 
00724 #define StopTrace(a,b,c) ControlTraceW((a),(b),(c), EVENT_TRACE_CONTROL_STOP)
00725 #define QueryTrace(a,b,c) ControlTraceW((a),(b),(c), EVENT_TRACE_CONTROL_QUERY)
00726 #define UpdateTrace(a,b,c) ControlTraceW((a),(b),(c), EVENT_TRACE_CONTROL_UPDATE)
00727 
00728 #else
00729 
00730 #define StopTrace StopTraceW
00731 #define QueryTrace QueryTraceW
00732 #define UpdateTrace UpdateTraceW
00733 
00734 #endif /* defined(__TRACE_W2K_COMPATIBLE) */
00735 
00736 #if (NTDDI_VERSION >= NTDDI_WINXP)
00737 #define FlushTrace FlushTraceW
00738 #endif
00739 
00740 #define QueryAllTraces QueryAllTracesW
00741 #define OpenTrace OpenTraceW
00742 
00743 #else /* defined(UNICODE) || defined(_UNICODE) */
00744 
00745 #define RegisterTraceGuids RegisterTraceGuidsA
00746 #define StartTrace StartTraceA
00747 #define ControlTrace ControlTraceA
00748 
00749 #if defined(__TRACE_W2K_COMPATIBLE)
00750 
00751 #define StopTrace(a,b,c) ControlTraceA((a),(b),(c), EVENT_TRACE_CONTROL_STOP)
00752 #define QueryTrace(a,b,c) ControlTraceA((a),(b),(c), EVENT_TRACE_CONTROL_QUERY)
00753 #define UpdateTrace(a,b,c) ControlTraceA((a),(b),(c), EVENT_TRACE_CONTROL_UPDATE)
00754 
00755 #else
00756 
00757 #define StopTrace StopTraceA
00758 #define QueryTrace QueryTraceA
00759 #define UpdateTrace UpdateTraceA
00760 
00761 #endif /* defined(__TRACE_W2K_COMPATIBLE) */
00762 
00763 #if (NTDDI_VERSION >= NTDDI_WINXP)
00764 #define FlushTrace FlushTraceA
00765 #endif
00766 
00767 #define QueryAllTraces QueryAllTracesA
00768 #define OpenTrace OpenTraceA
00769 
00770 #endif /* defined(UNICODE) || defined(_UNICODE) */
00771 
00772 EXTERN_C
00773 ULONG
00774 WMIAPI
00775 StartTraceW(
00776   OUT PTRACEHANDLE TraceHandle,
00777   IN LPCWSTR InstanceName,
00778   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00779 
00780 EXTERN_C
00781 ULONG
00782 WMIAPI
00783 StartTraceA(
00784   OUT PTRACEHANDLE TraceHandle,
00785   IN LPCSTR InstanceName,
00786   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00787 
00788 EXTERN_C
00789 ULONG
00790 WMIAPI
00791 StopTraceW(
00792   IN TRACEHANDLE TraceHandle,
00793   IN LPCWSTR InstanceName OPTIONAL,
00794   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00795 
00796 EXTERN_C
00797 ULONG
00798 WMIAPI
00799 StopTraceA(
00800   IN TRACEHANDLE TraceHandle,
00801   IN LPCSTR InstanceName OPTIONAL,
00802   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00803 
00804 EXTERN_C
00805 ULONG
00806 WMIAPI
00807 QueryTraceW(
00808   IN TRACEHANDLE TraceHandle,
00809   IN LPCWSTR InstanceName OPTIONAL,
00810   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00811 
00812 EXTERN_C
00813 ULONG
00814 WMIAPI
00815 QueryTraceA(
00816   IN TRACEHANDLE TraceHandle,
00817   IN LPCSTR InstanceName OPTIONAL,
00818   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00819 
00820 EXTERN_C
00821 ULONG
00822 WMIAPI
00823 UpdateTraceW(
00824   IN TRACEHANDLE TraceHandle,
00825   IN LPCWSTR InstanceName OPTIONAL,
00826   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00827 
00828 EXTERN_C
00829 ULONG
00830 WMIAPI
00831 UpdateTraceA(
00832   IN TRACEHANDLE TraceHandle,
00833   IN LPCSTR InstanceName OPTIONAL,
00834   IN OUT PEVENT_TRACE_PROPERTIES Properties);
00835 
00836 EXTERN_C
00837 ULONG
00838 WMIAPI
00839 ControlTraceW(
00840   IN TRACEHANDLE TraceHandle,
00841   IN LPCWSTR InstanceName OPTIONAL,
00842   IN OUT PEVENT_TRACE_PROPERTIES Properties,
00843   IN ULONG ControlCode);
00844 
00845 EXTERN_C
00846 ULONG
00847 WMIAPI
00848 ControlTraceA(
00849   IN TRACEHANDLE TraceHandle,
00850   IN LPCSTR InstanceName OPTIONAL,
00851   IN OUT PEVENT_TRACE_PROPERTIES Properties,
00852   IN ULONG ControlCode);
00853 
00854 EXTERN_C
00855 ULONG
00856 WMIAPI
00857 QueryAllTracesW(
00858   OUT PEVENT_TRACE_PROPERTIES *PropertyArray,
00859   IN ULONG PropertyArrayCount,
00860   OUT PULONG LoggerCount);
00861 
00862 EXTERN_C
00863 ULONG
00864 WMIAPI
00865 QueryAllTracesA(
00866   OUT PEVENT_TRACE_PROPERTIES *PropertyArray,
00867   IN ULONG PropertyArrayCount,
00868   OUT PULONG LoggerCount);
00869 
00870 EXTERN_C
00871 ULONG
00872 WMIAPI
00873 EnableTrace(
00874   IN ULONG Enable,
00875   IN ULONG EnableFlag,
00876   IN ULONG EnableLevel,
00877   IN LPCGUID ControlGuid,
00878   IN TRACEHANDLE TraceHandle);
00879 
00880 EXTERN_C
00881 ULONG
00882 WMIAPI
00883 CreateTraceInstanceId(
00884   IN HANDLE RegHandle,
00885   IN OUT PEVENT_INSTANCE_INFO InstInfo);
00886 
00887 EXTERN_C
00888 ULONG
00889 WMIAPI
00890 TraceEvent(
00891   IN TRACEHANDLE TraceHandle,
00892   IN PEVENT_TRACE_HEADER EventTrace);
00893 
00894 EXTERN_C
00895 ULONG
00896 WMIAPI
00897 TraceEventInstance(
00898   IN TRACEHANDLE TraceHandle,
00899   IN PEVENT_INSTANCE_HEADER EventTrace,
00900   IN PEVENT_INSTANCE_INFO InstInfo,
00901   IN PEVENT_INSTANCE_INFO ParentInstInfo OPTIONAL);
00902 
00903 EXTERN_C
00904 ULONG
00905 WMIAPI
00906 RegisterTraceGuidsW(
00907   IN WMIDPREQUEST RequestAddress,
00908   IN PVOID RequestContext OPTIONAL,
00909   IN LPCGUID ControlGuid,
00910   IN ULONG GuidCount,
00911   IN PTRACE_GUID_REGISTRATION TraceGuidReg OPTIONAL,
00912   IN LPCWSTR MofImagePath OPTIONAL,
00913   IN LPCWSTR MofResourceName OPTIONAL,
00914   OUT PTRACEHANDLE RegistrationHandle);
00915 
00916 EXTERN_C
00917 ULONG
00918 WMIAPI
00919 RegisterTraceGuidsA(
00920   IN WMIDPREQUEST RequestAddress,
00921   IN PVOID RequestContext OPTIONAL,
00922   IN LPCGUID ControlGuid,
00923   IN ULONG GuidCount,
00924   IN PTRACE_GUID_REGISTRATION TraceGuidReg OPTIONAL,
00925   IN LPCSTR MofImagePath OPTIONAL,
00926   IN LPCSTR MofResourceName OPTIONAL,
00927   OUT PTRACEHANDLE RegistrationHandle);
00928 
00929 EXTERN_C
00930 ULONG
00931 WMIAPI
00932 UnregisterTraceGuids(
00933   IN TRACEHANDLE RegistrationHandle);
00934 
00935 EXTERN_C
00936 TRACEHANDLE
00937 WMIAPI
00938 GetTraceLoggerHandle(
00939   IN PVOID Buffer);
00940 
00941 EXTERN_C
00942 UCHAR
00943 WMIAPI
00944 GetTraceEnableLevel(
00945   IN TRACEHANDLE TraceHandle);
00946 
00947 EXTERN_C
00948 ULONG
00949 WMIAPI
00950 GetTraceEnableFlags(
00951   IN TRACEHANDLE TraceHandle);
00952 
00953 EXTERN_C
00954 TRACEHANDLE
00955 WMIAPI
00956 OpenTraceA(
00957   IN OUT PEVENT_TRACE_LOGFILEA Logfile);
00958 
00959 EXTERN_C
00960 TRACEHANDLE
00961 WMIAPI
00962 OpenTraceW(
00963   IN OUT PEVENT_TRACE_LOGFILEW Logfile);
00964 
00965 EXTERN_C
00966 ULONG
00967 WMIAPI
00968 ProcessTrace(
00969   IN PTRACEHANDLE HandleArray,
00970   IN ULONG HandleCount,
00971   IN LPFILETIME StartTime OPTIONAL,
00972   IN LPFILETIME EndTime OPTIONAL);
00973 
00974 EXTERN_C
00975 ULONG
00976 WMIAPI
00977 CloseTrace(
00978   IN TRACEHANDLE TraceHandle);
00979 
00980 EXTERN_C
00981 ULONG
00982 WMIAPI
00983 SetTraceCallback(
00984   IN LPCGUID pGuid,
00985   IN PEVENT_CALLBACK EventCallback);
00986 
00987 EXTERN_C
00988 ULONG
00989 WMIAPI
00990 RemoveTraceCallback(
00991   IN LPCGUID pGuid);
00992 
00993 EXTERN_C
00994 ULONG
00995 __cdecl
00996 TraceMessage(
00997   IN TRACEHANDLE LoggerHandle,
00998   IN ULONG MessageFlags,
00999   IN LPCGUID MessageGuid,
01000   IN USHORT MessageNumber,
01001   ...);
01002 
01003 EXTERN_C
01004 ULONG
01005 WMIAPI
01006 TraceMessageVa(
01007   IN TRACEHANDLE LoggerHandle,
01008   IN ULONG MessageFlags,
01009   IN LPCGUID MessageGuid,
01010   IN USHORT MessageNumber,
01011   IN va_list MessageArgList);
01012 
01013 #if (WINVER >= _WIN32_WINNT_WINXP)
01014 
01015 EXTERN_C
01016 ULONG
01017 WMIAPI
01018 EnumerateTraceGuids(
01019   IN OUT PTRACE_GUID_PROPERTIES *GuidPropertiesArray,
01020   IN ULONG PropertyArrayCount,
01021   OUT PULONG GuidCount);
01022 
01023 EXTERN_C
01024 ULONG
01025 WMIAPI
01026 FlushTraceW(
01027   IN TRACEHANDLE TraceHandle,
01028   IN LPCWSTR InstanceName OPTIONAL,
01029   IN OUT PEVENT_TRACE_PROPERTIES Properties);
01030 
01031 EXTERN_C
01032 ULONG
01033 WMIAPI
01034 FlushTraceA(
01035   IN TRACEHANDLE TraceHandle,
01036   IN LPCSTR InstanceName OPTIONAL,
01037   IN OUT PEVENT_TRACE_PROPERTIES Properties);
01038 
01039 #endif /* (WINVER >= _WIN32_WINNT_WINXP) */
01040 
01041 #if (WINVER >= _WIN32_WINNT_VISTA)
01042 
01043 EXTERN_C
01044 ULONG
01045 WMIAPI
01046 EnableTraceEx(
01047   IN LPCGUID ProviderId,
01048   IN LPCGUID SourceId OPTIONAL,
01049   IN TRACEHANDLE TraceHandle,
01050   IN ULONG IsEnabled,
01051   IN UCHAR Level,
01052   IN ULONGLONG MatchAnyKeyword,
01053   IN ULONGLONG MatchAllKeyword,
01054   IN ULONG EnableProperty,
01055   IN PEVENT_FILTER_DESCRIPTOR EnableFilterDesc OPTIONAL);
01056 
01057 EXTERN_C
01058 ULONG
01059 WMIAPI
01060 EnumerateTraceGuidsEx(
01061   IN TRACE_QUERY_INFO_CLASS TraceQueryInfoClass,
01062   IN PVOID InBuffer OPTIONAL,
01063   IN ULONG InBufferSize,
01064   OUT PVOID OutBuffer OPTIONAL,
01065   IN ULONG OutBufferSize,
01066   OUT PULONG ReturnLength);
01067 
01068 #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
01069 
01070 #if (WINVER >= _WIN32_WINNT_WIN7)
01071 
01072 EXTERN_C
01073 ULONG
01074 WMIAPI
01075 EnableTraceEx2(
01076   IN TRACEHANDLE TraceHandle,
01077   IN LPCGUID ProviderId,
01078   IN ULONG ControlCode,
01079   IN UCHAR Level,
01080   IN ULONGLONG MatchAnyKeyword,
01081   IN ULONGLONG MatchAllKeyword,
01082   IN ULONG Timeout,
01083   IN PENABLE_TRACE_PARAMETERS EnableParameters OPTIONAL);
01084 
01085 EXTERN_C
01086 ULONG
01087 WMIAPI
01088 TraceSetInformation(
01089   IN TRACEHANDLE SessionHandle,
01090   IN TRACE_INFO_CLASS InformationClass,
01091   IN PVOID TraceInformation,
01092   IN ULONG InformationLength);
01093 
01094 #endif /* (WINVER >= _WIN32_WINNT_WIN7) */
01095 
01096 #endif /* !defined(_WMIKM_) && !defined(_NTDDK_) && !defined(_NTIFS_) */
01097 
01098 #ifdef __cplusplus
01099 } /* extern "C" */
01100 #endif

Generated on Sat May 26 2012 04:30:08 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.