| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _INC_TDH | |
| #define _INC_TDH | |
| #include <evntprov.h> | |
| #include <evntcons.h> | |
| #if (_WIN32_WINNT >= 0x0600) | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| typedef enum _EVENT_FIELD_TYPE { | |
| EventKeywordInformation = 0, | |
| EventLevelInformation = 1, | |
| EventChannelInformation = 2, | |
| EventTaskInformation = 3, | |
| EventOpcodeInformation = 4, | |
| EventInformationMax = 5 | |
| } EVENT_FIELD_TYPE; | |
| typedef struct _EVENT_MAP_ENTRY { | |
| ULONG OutputOffset; | |
| __C89_NAMELESS union { | |
| ULONG Value; | |
| ULONG InputOffset; | |
| }; | |
| } EVENT_MAP_ENTRY, *PEVENT_MAP_ENTRY; | |
| typedef enum _MAP_VALUETYPE | |
| { | |
| EVENTMAP_ENTRY_VALUETYPE_ULONG = 0, | |
| EVENTMAP_ENTRY_VALUETYPE_STRING = 1 | |
| } MAP_VALUETYPE; | |
| typedef enum _MAP_FLAGS { | |
| EVENTMAP_INFO_FLAG_MANIFEST_VALUEMAP = 1, | |
| EVENTMAP_INFO_FLAG_MANIFEST_BITMAP = 2, | |
| EVENTMAP_INFO_FLAG_MANIFEST_PATTERNMAP = 4, | |
| EVENTMAP_INFO_FLAG_WBEM_VALUEMAP = 8, | |
| EVENTMAP_INFO_FLAG_WBEM_BITMAP = 16, | |
| EVENTMAP_INFO_FLAG_WBEM_FLAG = 32, | |
| EVENTMAP_INFO_FLAG_WBEM_NO_MAP = 64 | |
| } MAP_FLAGS; | |
| typedef struct _EVENT_MAP_INFO { | |
| ULONG NameOffset; | |
| MAP_FLAGS Flag; | |
| ULONG EntryCount; | |
| __C89_NAMELESS union { | |
| MAP_VALUETYPE MapEntryValueType; | |
| ULONG FormatStringOffset; | |
| }; | |
| EVENT_MAP_ENTRY MapEntryArray[ANYSIZE_ARRAY]; | |
| } EVENT_MAP_INFO, *PEVENT_MAP_INFO; | |
| typedef enum _PROPERTY_FLAGS { | |
| PropertyStruct = 0x1, | |
| PropertyParamLength = 0x2, | |
| PropertyParamCount = 0x4, | |
| PropertyWBEMXmlFragment = 0x8, | |
| PropertyParamFixedLength = 0x10 | |
| } PROPERTY_FLAGS; | |
| typedef struct _EVENT_PROPERTY_INFO { | |
| PROPERTY_FLAGS Flags; | |
| ULONG NameOffset; | |
| __C89_NAMELESS union { | |
| struct { | |
| USHORT InType; | |
| USHORT OutType; | |
| ULONG MapNameOffset; | |
| } nonStructType; | |
| struct { | |
| USHORT StructStartIndex; | |
| USHORT NumOfStructMembers; | |
| ULONG padding; | |
| } structType; | |
| }; | |
| __C89_NAMELESS union { | |
| USHORT count; | |
| USHORT countPropertyIndex; | |
| }; | |
| __C89_NAMELESS union { | |
| USHORT length; | |
| USHORT lengthPropertyIndex; | |
| }; | |
| ULONG Reserved; | |
| } EVENT_PROPERTY_INFO; | |
| typedef enum _DECODING_SOURCE { | |
| DecodingSourceXMLFile = 0, | |
| DecodingSourceWbem = 1, | |
| DecodingSourceWPP = 2 | |
| } DECODING_SOURCE; | |
| typedef enum _TDH_CONTEXT_TYPE { | |
| TDH_CONTEXT_WPP_TMFFILE = 0, | |
| TDH_CONTEXT_WPP_TMFSEARCHPATH = 1, | |
| TDH_CONTEXT_WPP_GMT = 2, | |
| TDH_CONTEXT_POINTERSIZE = 3, | |
| TDH_CONTEXT_MAXIMUM = 4 | |
| } TDH_CONTEXT_TYPE; | |
| typedef enum _TEMPLATE_FLAGS { | |
| TEMPLATE_EVENT_DATA = 1, | |
| TEMPLATE_USER_DATA = 2 | |
| } TEMPLATE_FLAGS; | |
| typedef struct _TRACE_EVENT_INFO { | |
| GUID ProviderGuid; | |
| GUID EventGuid; | |
| EVENT_DESCRIPTOR EventDescriptor; | |
| DECODING_SOURCE DecodingSource; | |
| ULONG ProviderNameOffset; | |
| ULONG LevelNameOffset; | |
| ULONG ChannelNameOffset; | |
| ULONG KeywordsNameOffset; | |
| ULONG TaskNameOffset; | |
| ULONG OpcodeNameOffset; | |
| ULONG EventMessageOffset; | |
| ULONG ProviderMessageOffset; | |
| ULONG BinaryXMLOffset; | |
| ULONG BinaryXMLSize; | |
| ULONG ActivityIDNameOffset; | |
| ULONG RelatedActivityIDNameOffset; | |
| ULONG PropertyCount; | |
| ULONG TopLevelPropertyCount; | |
| TEMPLATE_FLAGS Flags; | |
| EVENT_PROPERTY_INFO EventPropertyInfoArray[ANYSIZE_ARRAY]; | |
| } TRACE_EVENT_INFO, *PTRACE_EVENT_INFO; | |
| typedef struct _PROPERTY_DATA_DESCRIPTOR { | |
| ULONGLONG PropertyName; | |
| ULONG ArrayIndex; | |
| ULONG Reserved; | |
| } PROPERTY_DATA_DESCRIPTOR, *PPROPERTY_DATA_DESCRIPTOR; | |
| typedef struct _TRACE_PROVIDER_INFO { | |
| GUID ProviderGuid; | |
| ULONG SchemaSource; | |
| ULONG ProviderNameOffset; | |
| } TRACE_PROVIDER_INFO; | |
| typedef struct _PROVIDER_ENUMERATION_INFO { | |
| ULONG NumberOfProviders; | |
| ULONG Padding; | |
| TRACE_PROVIDER_INFO TraceProviderInfoArray[ANYSIZE_ARRAY]; | |
| } PROVIDER_ENUMERATION_INFO, *PPROVIDER_ENUMERATION_INFO; | |
| typedef struct _PROVIDER_FIELD_INFO { | |
| ULONG NameOffset; | |
| ULONG DescriptionOffset; | |
| ULONGLONG Value; | |
| } PROVIDER_FIELD_INFO; | |
| typedef struct _PROVIDER_FIELD_INFOARRAY { | |
| ULONG NumberOfElements; | |
| EVENT_FIELD_TYPE FieldType; | |
| PROVIDER_FIELD_INFO FieldInfoArray[ANYSIZE_ARRAY]; | |
| } PROVIDER_FIELD_INFOARRAY, *PPROVIDER_FIELD_INFOARRAY; | |
| typedef struct _TDH_CONTEXT { | |
| ULONGLONG ParameterValue; | |
| TDH_CONTEXT_TYPE ParameterType; | |
| ULONG ParameterSize; | |
| } TDH_CONTEXT, *PTDH_CONTEXT; | |
| ULONG __stdcall TdhEnumerateProviderFieldInformation( | |
| LPGUID pGuid, | |
| EVENT_FIELD_TYPE EventFieldType, | |
| PPROVIDER_FIELD_INFOARRAY pBuffer, | |
| ULONG *pBufferSize | |
| ); | |
| ULONG __stdcall TdhEnumerateProviders( | |
| PPROVIDER_ENUMERATION_INFO pBuffer, | |
| ULONG *pBufferSize | |
| ); | |
| ULONG __stdcall TdhGetEventInformation( | |
| PEVENT_RECORD pEvent, | |
| ULONG TdhContextCount, | |
| PTDH_CONTEXT pTdhContext, | |
| PTRACE_EVENT_INFO pBuffer, | |
| ULONG *pBufferSize | |
| ); | |
| ULONG __stdcall TdhGetEventMapInformation( | |
| PEVENT_RECORD pEvent, | |
| LPWSTR pMapName, | |
| PEVENT_MAP_INFO pBuffer, | |
| ULONG *pBufferSize | |
| ); | |
| ULONG __stdcall TdhGetProperty( | |
| PEVENT_RECORD pEvent, | |
| ULONG TdhContextCount, | |
| PTDH_CONTEXT pTdhContext, | |
| ULONG PropertyDataCount, | |
| PPROPERTY_DATA_DESCRIPTOR pPropertyData, | |
| ULONG BufferSize, | |
| PBYTE pBuffer | |
| ); | |
| ULONG __stdcall TdhGetPropertySize( | |
| PEVENT_RECORD pEvent, | |
| ULONG TdhContextCount, | |
| PTDH_CONTEXT pTdhContext, | |
| ULONG PropertyDataCount, | |
| PPROPERTY_DATA_DESCRIPTOR pPropertyData, | |
| ULONG *pPropertySize | |
| ); | |
| ULONG __stdcall TdhQueryProviderFieldInformation( | |
| LPGUID pGuid, | |
| ULONGLONG EventFieldValue, | |
| EVENT_FIELD_TYPE EventFieldType, | |
| PPROVIDER_FIELD_INFOARRAY pBuffer, | |
| ULONG *pBufferSize | |
| ); | |
| #if (_WIN32_WINNT >= 0x0601) | |
| typedef struct _PROVIDER_FILTER_INFO { | |
| UCHAR Id; | |
| UCHAR Version; | |
| ULONG MessageOffset; | |
| ULONG Reserved; | |
| ULONG PropertyCount; | |
| EVENT_PROPERTY_INFO EventPropertyInfoArray[ANYSIZE_ARRAY]; | |
| } PROVIDER_FILTER_INFO, *PPROVIDER_FILTER_INFO; | |
| #endif /*(_WIN32_WINNT >= 0x0601)*/ | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ | |
| #endif /*_INC_TDH*/ |