| 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*/ |