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