diff options
Diffstat (limited to 'src/win32ctl/include/tdh.h')
-rw-r--r-- | src/win32ctl/include/tdh.h | 329 |
1 files changed, 329 insertions, 0 deletions
diff --git a/src/win32ctl/include/tdh.h b/src/win32ctl/include/tdh.h new file mode 100644 index 0000000..745c248 --- /dev/null +++ b/src/win32ctl/include/tdh.h @@ -0,0 +1,329 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +#ifndef _INC_TDH +#define _INC_TDH + +/* --- start added by kenj */ +#undef __MINGW_EXTENSION +#if defined(__GNUC__) || defined(__GNUG__) +#define __MINGW_EXTENSION __extension__ +#else +#define __MINGW_EXTENSION +#endif +/* --- end added by kenj */ + +#include <evntprov.h> +#include <evntcons.h> +#if (_WIN32_WINNT >= 0x0600) + +#ifdef __cplusplus +extern "C" { +#endif + +#define __TDHCACHE_ALIGN __attribute__ ((aligned (8))) + +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; + __MINGW_EXTENSION union { + ULONG Value; + ULONG InputOffset; + }; +} __TDHCACHE_ALIGN 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; + __MINGW_EXTENSION union { + MAP_VALUETYPE MapEntryValueType; + ULONG FormatStringOffset; + }; + EVENT_MAP_ENTRY MapEntryArray[ANYSIZE_ARRAY]; +} __TDHCACHE_ALIGN EVENT_MAP_INFO, *PEVENT_MAP_INFO; + +typedef enum _TDH_IN_TYPE { + TDH_INTYPE_NULL, + TDH_INTYPE_UNICODESTRING, + TDH_INTYPE_ANSISTRING, + TDH_INTYPE_INT8, + TDH_INTYPE_UINT8, + TDH_INTYPE_INT16, + TDH_INTYPE_UINT16, + TDH_INTYPE_INT32, + TDH_INTYPE_UINT32, + TDH_INTYPE_INT64, + TDH_INTYPE_UINT64, + TDH_INTYPE_FLOAT, + TDH_INTYPE_DOUBLE, + TDH_INTYPE_BOOLEAN, + TDH_INTYPE_BINARY, + TDH_INTYPE_GUID, + TDH_INTYPE_POINTER, + TDH_INTYPE_FILETIME, + TDH_INTYPE_SYSTEMTIME, + TDH_INTYPE_SID, + TDH_INTYPE_HEXINT32, + TDH_INTYPE_HEXINT64, + TDH_INTYPE_COUNTEDSTRING = 300, + TDH_INTYPE_COUNTEDANSISTRING, + TDH_INTYPE_REVERSEDCOUNTEDSTRING, + TDH_INTYPE_REVERSEDCOUNTEDANSISTRING, + TDH_INTYPE_NONNULLTERMINATEDSTRING, + TDH_INTYPE_NONNULLTERMINATEDANSISTRING, + TDH_INTYPE_UNICODECHAR, + TDH_INTYPE_ANSICHAR, + TDH_INTYPE_SIZET, + TDH_INTYPE_HEXDUMP, + TDH_INTYPE_WBEMSID +} TDH_IN_TYPE; + +typedef enum _TDH_OUT_TYPE { + TDH_OUTTYPE_NULL, + TDH_OUTTYPE_STRING, + TDH_OUTTYPE_DATETIME, + TDH_OUTTYPE_BYTE, + TDH_OUTTYPE_UNSIGNEDBYTE, + TDH_OUTTYPE_SHORT, + TDH_OUTTYPE_UNSIGNEDSHORT, + TDH_OUTTYPE_INT, + TDH_OUTTYPE_UNSIGNEDINT, + TDH_OUTTYPE_LONG, + TDH_OUTTYPE_UNSIGNEDLONG, + TDH_OUTTYPE_FLOAT, + TDH_OUTTYPE_DOUBLE, + TDH_OUTTYPE_BOOLEAN, + TDH_OUTTYPE_GUID, + TDH_OUTTYPE_HEXBINARY, + TDH_OUTTYPE_HEXINT8, + TDH_OUTTYPE_HEXINT16, + TDH_OUTTYPE_HEXINT32, + TDH_OUTTYPE_HEXINT64, + TDH_OUTTYPE_PID, + TDH_OUTTYPE_TID, + TDH_OUTTYPE_PORT, + TDH_OUTTYPE_IPV4, + TDH_OUTTYPE_IPV6, + TDH_OUTTYPE_SOCKETADDRESS, + TDH_OUTTYPE_CIMDATETIME, + TDH_OUTTYPE_ETWTIME, + TDH_OUTTYPE_XML, + TDH_OUTTYPE_ERRORCODE, + TDH_OUTTYPE_WIN32ERROR, + TDH_OUTTYPE_NTSTATUS, + TDH_OUTTYPE_HRESULT, + TDH_OUTTYPE_CULTURE_INSENSITIVE_DATETIME, + TDH_OUTTYPE_REDUCEDSTRING = 300, + TDH_OUTTYPE_NOPRINT +} TDH_OUT_TYPE; + +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; + __MINGW_EXTENSION union { + struct { + USHORT InType; + USHORT OutType; + ULONG MapNameOffset; + } nonStructType; + struct { + USHORT StructStartIndex; + USHORT NumOfStructMembers; + ULONG padding; + } structType; + }; + __MINGW_EXTENSION union { + USHORT count; + USHORT countPropertyIndex; + }; + __MINGW_EXTENSION union { + USHORT length; + USHORT lengthPropertyIndex; + }; + ULONG Reserved; +} __TDHCACHE_ALIGN EVENT_PROPERTY_INFO, *PEVENT_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]; +} __TDHCACHE_ALIGN TRACE_EVENT_INFO, *PTRACE_EVENT_INFO; + +typedef struct _PROPERTY_DATA_DESCRIPTOR { + ULONGLONG PropertyName; + ULONG ArrayIndex; + ULONG Reserved; +} __TDHCACHE_ALIGN PROPERTY_DATA_DESCRIPTOR, *PPROPERTY_DATA_DESCRIPTOR; + +typedef struct _TRACE_PROVIDER_INFO { + GUID ProviderGuid; + ULONG SchemaSource; + ULONG ProviderNameOffset; +} __TDHCACHE_ALIGN TRACE_PROVIDER_INFO, *PTRACE_PROVIDER_INFO; + +typedef struct _PROVIDER_ENUMERATION_INFO { + ULONG NumberOfProviders; + ULONG Padding; + TRACE_PROVIDER_INFO TraceProviderInfoArray[ANYSIZE_ARRAY]; +} __TDHCACHE_ALIGN PROVIDER_ENUMERATION_INFO, *PPROVIDER_ENUMERATION_INFO; + +typedef struct _PROVIDER_FIELD_INFO { + ULONG NameOffset; + ULONG DescriptionOffset; + ULONGLONG Value; +} __TDHCACHE_ALIGN PROVIDER_FIELD_INFO, *PPROVIDER_FIELD_INFO; + +typedef struct _PROVIDER_FIELD_INFOARRAY { + ULONG NumberOfElements; + EVENT_FIELD_TYPE FieldType; + PROVIDER_FIELD_INFO FieldInfoArray[ANYSIZE_ARRAY]; +} __TDHCACHE_ALIGN PROVIDER_FIELD_INFOARRAY, *PPROVIDER_FIELD_INFOARRAY; + +typedef struct _TDH_CONTEXT { + ULONGLONG ParameterValue; + TDH_CONTEXT_TYPE ParameterType; + ULONG ParameterSize; +} __TDHCACHE_ALIGN 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*/ |