| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef _INC_TDH | 
 
 
 
 
 | 7 | #define _INC_TDH | 
 
 
 
 
 | 8 | #include <evntprov.h> | 
 
 
 
 
 | 9 | #include <evntcons.h> | 
 
 
 
 
 | 10 | #if (_WIN32_WINNT >= 0x0600) | 
 
 
 
 
 | 11 |  | 
 
 
 
 
 | 12 | #ifdef __cplusplus | 
 
 
 
 
 | 13 | extern "C" { | 
 
 
 
 
 | 14 | #endif | 
 
 
 
 
 | 15 |  | 
 
 
 
 
 | 16 | typedef enum _EVENT_FIELD_TYPE { | 
 
 
 
 
 | 17 | EventKeywordInformation   = 0, | 
 
 
 
 
 | 18 | EventLevelInformation     = 1, | 
 
 
 
 
 | 19 | EventChannelInformation   = 2, | 
 
 
 
 
 | 20 | EventTaskInformation      = 3, | 
 
 
 
 
 | 21 | EventOpcodeInformation    = 4, | 
 
 
 
 
 | 22 | EventInformationMax       = 5 | 
 
 
 
 
 | 23 | } EVENT_FIELD_TYPE; | 
 
 
 
 
 | 24 |  | 
 
 
 
 
 | 25 | typedef struct _EVENT_MAP_ENTRY { | 
 
 
 
 
 | 26 | ULONG OutputOffset; | 
 
 
 
 
 | 27 | __C89_NAMELESS union { | 
 
 
 
 
 | 28 | ULONG Value; | 
 
 
 
 
 | 29 | ULONG InputOffset; | 
 
 
 
 
 | 30 | }; | 
 
 
 
 
 | 31 | } EVENT_MAP_ENTRY, *PEVENT_MAP_ENTRY; | 
 
 
 
 
 | 32 |  | 
 
 
 
 
 | 33 | typedef enum _MAP_VALUETYPE | 
 
 
 
 
 | 34 | { | 
 
 
 
 
 | 35 | EVENTMAP_ENTRY_VALUETYPE_ULONG  = 0, | 
 
 
 
 
 | 36 | EVENTMAP_ENTRY_VALUETYPE_STRING = 1 | 
 
 
 
 
 | 37 | } MAP_VALUETYPE; | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 | typedef enum _MAP_FLAGS { | 
 
 
 
 
 | 40 | EVENTMAP_INFO_FLAG_MANIFEST_VALUEMAP     = 1, | 
 
 
 
 
 | 41 | EVENTMAP_INFO_FLAG_MANIFEST_BITMAP       = 2, | 
 
 
 
 
 | 42 | EVENTMAP_INFO_FLAG_MANIFEST_PATTERNMAP   = 4, | 
 
 
 
 
 | 43 | EVENTMAP_INFO_FLAG_WBEM_VALUEMAP         = 8, | 
 
 
 
 
 | 44 | EVENTMAP_INFO_FLAG_WBEM_BITMAP           = 16, | 
 
 
 
 
 | 45 | EVENTMAP_INFO_FLAG_WBEM_FLAG             = 32, | 
 
 
 
 
 | 46 | EVENTMAP_INFO_FLAG_WBEM_NO_MAP           = 64 | 
 
 
 
 
 | 47 | } MAP_FLAGS; | 
 
 
 
 
 | 48 |  | 
 
 
 
 
 | 49 | typedef struct _EVENT_MAP_INFO { | 
 
 
 
 
 | 50 | ULONG NameOffset; | 
 
 
 
 
 | 51 | MAP_FLAGS Flag; | 
 
 
 
 
 | 52 | ULONG EntryCount; | 
 
 
 
 
 | 53 | __C89_NAMELESS union { | 
 
 
 
 
 | 54 | MAP_VALUETYPE MapEntryValueType; | 
 
 
 
 
 | 55 | ULONG FormatStringOffset; | 
 
 
 
 
 | 56 | }; | 
 
 
 
 
 | 57 | EVENT_MAP_ENTRY MapEntryArray[ANYSIZE_ARRAY]; | 
 
 
 
 
 | 58 | } EVENT_MAP_INFO, *PEVENT_MAP_INFO; | 
 
 
 
 
 | 59 |  | 
 
 
 
 
 | 60 | typedef enum _PROPERTY_FLAGS { | 
 
 
 
 
 | 61 | PropertyStruct             = 0x1, | 
 
 
 
 
 | 62 | PropertyParamLength        = 0x2, | 
 
 
 
 
 | 63 | PropertyParamCount         = 0x4, | 
 
 
 
 
 | 64 | PropertyWBEMXmlFragment    = 0x8, | 
 
 
 
 
 | 65 | PropertyParamFixedLength   = 0x10 | 
 
 
 
 
 | 66 | } PROPERTY_FLAGS; | 
 
 
 
 
 | 67 |  | 
 
 
 
 
 | 68 | typedef struct _EVENT_PROPERTY_INFO { | 
 
 
 
 
 | 69 | PROPERTY_FLAGS Flags; | 
 
 
 
 
 | 70 | ULONG          NameOffset; | 
 
 
 
 
 | 71 | __C89_NAMELESS union { | 
 
 
 
 
 | 72 | struct { | 
 
 
 
 
 | 73 | USHORT InType; | 
 
 
 
 
 | 74 | USHORT OutType; | 
 
 
 
 
 | 75 | ULONG  MapNameOffset; | 
 
 
 
 
 | 76 | } nonStructType; | 
 
 
 
 
 | 77 | struct { | 
 
 
 
 
 | 78 | USHORT StructStartIndex; | 
 
 
 
 
 | 79 | USHORT NumOfStructMembers; | 
 
 
 
 
 | 80 | ULONG  padding; | 
 
 
 
 
 | 81 | } structType; | 
 
 
 
 
 | 82 | }; | 
 
 
 
 
 | 83 | __C89_NAMELESS union { | 
 
 
 
 
 | 84 | USHORT count; | 
 
 
 
 
 | 85 | USHORT countPropertyIndex; | 
 
 
 
 
 | 86 | }; | 
 
 
 
 
 | 87 | __C89_NAMELESS union { | 
 
 
 
 
 | 88 | USHORT length; | 
 
 
 
 
 | 89 | USHORT lengthPropertyIndex; | 
 
 
 
 
 | 90 | }; | 
 
 
 
 
 | 91 | ULONG          Reserved; | 
 
 
 
 
 | 92 | } EVENT_PROPERTY_INFO; | 
 
 
 
 
 | 93 |  | 
 
 
 
 
 | 94 | typedef enum _DECODING_SOURCE { | 
 
 
 
 
 | 95 | DecodingSourceXMLFile   = 0, | 
 
 
 
 
 | 96 | DecodingSourceWbem      = 1, | 
 
 
 
 
 | 97 | DecodingSourceWPP       = 2 | 
 
 
 
 
 | 98 | } DECODING_SOURCE; | 
 
 
 
 
 | 99 |  | 
 
 
 
 
 | 100 | typedef enum _TDH_CONTEXT_TYPE { | 
 
 
 
 
 | 101 | TDH_CONTEXT_WPP_TMFFILE         = 0, | 
 
 
 
 
 | 102 | TDH_CONTEXT_WPP_TMFSEARCHPATH   = 1, | 
 
 
 
 
 | 103 | TDH_CONTEXT_WPP_GMT             = 2, | 
 
 
 
 
 | 104 | TDH_CONTEXT_POINTERSIZE         = 3, | 
 
 
 
 
 | 105 | TDH_CONTEXT_MAXIMUM             = 4 | 
 
 
 
 
 | 106 | } TDH_CONTEXT_TYPE; | 
 
 
 
 
 | 107 |  | 
 
 
 
 
 | 108 | typedef enum _TEMPLATE_FLAGS { | 
 
 
 
 
 | 109 | TEMPLATE_EVENT_DATA   = 1, | 
 
 
 
 
 | 110 | TEMPLATE_USER_DATA    = 2 | 
 
 
 
 
 | 111 | } TEMPLATE_FLAGS; | 
 
 
 
 
 | 112 |  | 
 
 
 
 
 | 113 | typedef struct _TRACE_EVENT_INFO { | 
 
 
 
 
 | 114 | GUID                ProviderGuid; | 
 
 
 
 
 | 115 | GUID                EventGuid; | 
 
 
 
 
 | 116 | EVENT_DESCRIPTOR    EventDescriptor; | 
 
 
 
 
 | 117 | DECODING_SOURCE     DecodingSource; | 
 
 
 
 
 | 118 | ULONG               ProviderNameOffset; | 
 
 
 
 
 | 119 | ULONG               LevelNameOffset; | 
 
 
 
 
 | 120 | ULONG               ChannelNameOffset; | 
 
 
 
 
 | 121 | ULONG               KeywordsNameOffset; | 
 
 
 
 
 | 122 | ULONG               TaskNameOffset; | 
 
 
 
 
 | 123 | ULONG               OpcodeNameOffset; | 
 
 
 
 
 | 124 | ULONG               EventMessageOffset; | 
 
 
 
 
 | 125 | ULONG               ProviderMessageOffset; | 
 
 
 
 
 | 126 | ULONG               BinaryXMLOffset; | 
 
 
 
 
 | 127 | ULONG               BinaryXMLSize; | 
 
 
 
 
 | 128 | ULONG               ActivityIDNameOffset; | 
 
 
 
 
 | 129 | ULONG               RelatedActivityIDNameOffset; | 
 
 
 
 
 | 130 | ULONG               PropertyCount; | 
 
 
 
 
 | 131 | ULONG               TopLevelPropertyCount; | 
 
 
 
 
 | 132 | TEMPLATE_FLAGS      Flags; | 
 
 
 
 
 | 133 | EVENT_PROPERTY_INFO EventPropertyInfoArray[ANYSIZE_ARRAY]; | 
 
 
 
 
 | 134 | } TRACE_EVENT_INFO, *PTRACE_EVENT_INFO; | 
 
 
 
 
 | 135 |  | 
 
 
 
 
 | 136 | typedef struct _PROPERTY_DATA_DESCRIPTOR { | 
 
 
 
 
 | 137 | ULONGLONG PropertyName; | 
 
 
 
 
 | 138 | ULONG     ArrayIndex; | 
 
 
 
 
 | 139 | ULONG     Reserved; | 
 
 
 
 
 | 140 | } PROPERTY_DATA_DESCRIPTOR, *PPROPERTY_DATA_DESCRIPTOR; | 
 
 
 
 
 | 141 |  | 
 
 
 
 
 | 142 | typedef struct _TRACE_PROVIDER_INFO { | 
 
 
 
 
 | 143 | GUID  ProviderGuid; | 
 
 
 
 
 | 144 | ULONG SchemaSource; | 
 
 
 
 
 | 145 | ULONG ProviderNameOffset; | 
 
 
 
 
 | 146 | } TRACE_PROVIDER_INFO; | 
 
 
 
 
 | 147 |  | 
 
 
 
 
 | 148 | typedef struct _PROVIDER_ENUMERATION_INFO { | 
 
 
 
 
 | 149 | ULONG               NumberOfProviders; | 
 
 
 
 
 | 150 | ULONG               Padding; | 
 
 
 
 
 | 151 | TRACE_PROVIDER_INFO TraceProviderInfoArray[ANYSIZE_ARRAY]; | 
 
 
 
 
 | 152 | } PROVIDER_ENUMERATION_INFO, *PPROVIDER_ENUMERATION_INFO; | 
 
 
 
 
 | 153 |  | 
 
 
 
 
 | 154 | typedef struct _PROVIDER_FIELD_INFO { | 
 
 
 
 
 | 155 | ULONG     NameOffset; | 
 
 
 
 
 | 156 | ULONG     DescriptionOffset; | 
 
 
 
 
 | 157 | ULONGLONG Value; | 
 
 
 
 
 | 158 | } PROVIDER_FIELD_INFO; | 
 
 
 
 
 | 159 |  | 
 
 
 
 
 | 160 | typedef struct _PROVIDER_FIELD_INFOARRAY { | 
 
 
 
 
 | 161 | ULONG               NumberOfElements; | 
 
 
 
 
 | 162 | EVENT_FIELD_TYPE    FieldType; | 
 
 
 
 
 | 163 | PROVIDER_FIELD_INFO FieldInfoArray[ANYSIZE_ARRAY]; | 
 
 
 
 
 | 164 | } PROVIDER_FIELD_INFOARRAY, *PPROVIDER_FIELD_INFOARRAY; | 
 
 
 
 
 | 165 |  | 
 
 
 
 
 | 166 | typedef struct _TDH_CONTEXT { | 
 
 
 
 
 | 167 | ULONGLONG        ParameterValue; | 
 
 
 
 
 | 168 | TDH_CONTEXT_TYPE ParameterType; | 
 
 
 
 
 | 169 | ULONG            ParameterSize; | 
 
 
 
 
 | 170 | } TDH_CONTEXT, *PTDH_CONTEXT; | 
 
 
 
 
 | 171 |  | 
 
 
 
 
 | 172 | ULONG __stdcall TdhEnumerateProviderFieldInformation( | 
 
 
 
 
 | 173 | LPGUID pGuid, | 
 
 
 
 
 | 174 | EVENT_FIELD_TYPE EventFieldType, | 
 
 
 
 
 | 175 | PPROVIDER_FIELD_INFOARRAY pBuffer, | 
 
 
 
 
 | 176 | ULONG *pBufferSize | 
 
 
 
 
 | 177 | ); | 
 
 
 
 
 | 178 |  | 
 
 
 
 
 | 179 | ULONG __stdcall TdhEnumerateProviders( | 
 
 
 
 
 | 180 | PPROVIDER_ENUMERATION_INFO pBuffer, | 
 
 
 
 
 | 181 | ULONG *pBufferSize | 
 
 
 
 
 | 182 | ); | 
 
 
 
 
 | 183 |  | 
 
 
 
 
 | 184 | ULONG __stdcall TdhGetEventInformation( | 
 
 
 
 
 | 185 | PEVENT_RECORD pEvent, | 
 
 
 
 
 | 186 | ULONG TdhContextCount, | 
 
 
 
 
 | 187 | PTDH_CONTEXT pTdhContext, | 
 
 
 
 
 | 188 | PTRACE_EVENT_INFO pBuffer, | 
 
 
 
 
 | 189 | ULONG *pBufferSize | 
 
 
 
 
 | 190 | ); | 
 
 
 
 
 | 191 |  | 
 
 
 
 
 | 192 | ULONG __stdcall TdhGetEventMapInformation( | 
 
 
 
 
 | 193 | PEVENT_RECORD pEvent, | 
 
 
 
 
 | 194 | LPWSTR pMapName, | 
 
 
 
 
 | 195 | PEVENT_MAP_INFO pBuffer, | 
 
 
 
 
 | 196 | ULONG *pBufferSize | 
 
 
 
 
 | 197 | ); | 
 
 
 
 
 | 198 |  | 
 
 
 
 
 | 199 | ULONG __stdcall TdhGetProperty( | 
 
 
 
 
 | 200 | PEVENT_RECORD pEvent, | 
 
 
 
 
 | 201 | ULONG TdhContextCount, | 
 
 
 
 
 | 202 | PTDH_CONTEXT pTdhContext, | 
 
 
 
 
 | 203 | ULONG PropertyDataCount, | 
 
 
 
 
 | 204 | PPROPERTY_DATA_DESCRIPTOR pPropertyData, | 
 
 
 
 
 | 205 | ULONG BufferSize, | 
 
 
 
 
 | 206 | PBYTE pBuffer | 
 
 
 
 
 | 207 | ); | 
 
 
 
 
 | 208 |  | 
 
 
 
 
 | 209 | ULONG __stdcall TdhGetPropertySize( | 
 
 
 
 
 | 210 | PEVENT_RECORD pEvent, | 
 
 
 
 
 | 211 | ULONG TdhContextCount, | 
 
 
 
 
 | 212 | PTDH_CONTEXT pTdhContext, | 
 
 
 
 
 | 213 | ULONG PropertyDataCount, | 
 
 
 
 
 | 214 | PPROPERTY_DATA_DESCRIPTOR pPropertyData, | 
 
 
 
 
 | 215 | ULONG *pPropertySize | 
 
 
 
 
 | 216 | ); | 
 
 
 
 
 | 217 |  | 
 
 
 
 
 | 218 | ULONG __stdcall TdhQueryProviderFieldInformation( | 
 
 
 
 
 | 219 | LPGUID pGuid, | 
 
 
 
 
 | 220 | ULONGLONG EventFieldValue, | 
 
 
 
 
 | 221 | EVENT_FIELD_TYPE EventFieldType, | 
 
 
 
 
 | 222 | PPROVIDER_FIELD_INFOARRAY pBuffer, | 
 
 
 
 
 | 223 | ULONG *pBufferSize | 
 
 
 
 
 | 224 | ); | 
 
 
 
 
 | 225 |  | 
 
 
 
 
 | 226 | #if (_WIN32_WINNT >= 0x0601) | 
 
 
 
 
 | 227 | typedef struct _PROVIDER_FILTER_INFO { | 
 
 
 
 
 | 228 | UCHAR               Id; | 
 
 
 
 
 | 229 | UCHAR               Version; | 
 
 
 
 
 | 230 | ULONG               MessageOffset; | 
 
 
 
 
 | 231 | ULONG               Reserved; | 
 
 
 
 
 | 232 | ULONG               PropertyCount; | 
 
 
 
 
 | 233 | EVENT_PROPERTY_INFO EventPropertyInfoArray[ANYSIZE_ARRAY]; | 
 
 
 
 
 | 234 | } PROVIDER_FILTER_INFO, *PPROVIDER_FILTER_INFO; | 
 
 
 
 
 | 235 | #endif /*(_WIN32_WINNT >= 0x0601)*/ | 
 
 
 
 
 | 236 |  | 
 
 
 
 
 | 237 | #ifdef __cplusplus | 
 
 
 
 
 | 238 | } | 
 
 
 
 
 | 239 | #endif | 
 
 
 
 
 | 240 |  | 
 
 
 
 
 | 241 | #endif /*(_WIN32_WINNT >= 0x0600)*/ | 
 
 
 
 
 | 242 | #endif /*_INC_TDH*/ |