/* * evntprov.h Event provider functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _EVNTPROV_H_ #define _EVNTPROV_H_ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #ifdef __cplusplus extern "C" { #endif /* Macro to specify event functions */ #define EVNTAPI DECLSPEC_IMPORT __stdcall /* Primitive data types */ typedef ULONGLONG REGHANDLE; typedef ULONGLONG *PREGHANDLE; /* Event levels */ #define EVENT_MIN_LEVEL 0x00 #define EVENT_MAX_LEVEL 0xFF /* Event activity control codes */ #define EVENT_ACTIVITY_CTRL_GET_ID 1 #define EVENT_ACTIVITY_CTRL_SET_ID 2 #define EVENT_ACTIVITY_CTRL_CREATE_ID 3 #define EVENT_ACTIVITY_CTRL_GET_SET_ID 4 #define EVENT_ACTIVITY_CTRL_CREATE_SET_ID 5 /* Maximum values */ #define MAX_EVENT_DATA_DESCRIPTORS 128 #define MAX_EVENT_FILTER_DATA_SIZE 1024 /* Event filter types */ #define EVENT_FILTER_TYPE_SCHEMATIZED 0x80000000L /* Event data descriptor */ typedef struct _EVENT_DATA_DESCRIPTOR { ULONGLONG Ptr; ULONG Size; ULONG Reserved; } EVENT_DATA_DESCRIPTOR; typedef EVENT_DATA_DESCRIPTOR *PEVENT_DATA_DESCRIPTOR; /* Event descriptor */ typedef struct _EVENT_DESCRIPTOR { USHORT Id; UCHAR Version; UCHAR Channel; UCHAR Level; UCHAR Opcode; USHORT Task; ULONGLONG Keyword; } EVENT_DESCRIPTOR; typedef EVENT_DESCRIPTOR *PEVENT_DESCRIPTOR; typedef const EVENT_DESCRIPTOR *PCEVENT_DESCRIPTOR; /* Event filter descriptor */ typedef struct _EVENT_FILTER_DESCRIPTOR { ULONGLONG Ptr; ULONG Size; ULONG Type; } EVENT_FILTER_DESCRIPTOR; typedef EVENT_FILTER_DESCRIPTOR *PEVENT_FILTER_DESCRIPTOR; /* Event filter header */ typedef struct _EVENT_FILTER_HEADER { USHORT Id; UCHAR Version; UCHAR Reserved[5]; ULONGLONG InstanceId; ULONG Size; ULONG NextOffset; } EVENT_FILTER_HEADER; typedef EVENT_FILTER_HEADER *PEVENT_FILTER_HEADER; /* Enable callback */ #ifndef _ETW_KM_ typedef VOID (NTAPI *PENABLECALLBACK)( LPCGUID, ULONG, UCHAR, ULONGLONG, ULONGLONG, PEVENT_FILTER_DESCRIPTOR, PVOID ); #endif /* Functions in ADVAPI32.DLL */ #ifndef _ETW_KM_ #if (WINVER >= 0x0600) ULONG EVNTAPI EventActivityIdControl( ULONG, LPGUID ); BOOLEAN EVNTAPI EventEnabled( REGHANDLE, PCEVENT_DESCRIPTOR ); BOOLEAN EVNTAPI EventProviderEnabled( REGHANDLE, UCHAR, ULONGLONG ); ULONG EVNTAPI EventRegister( LPCGUID, PENABLECALLBACK, PVOID, PREGHANDLE ); ULONG EVNTAPI EventUnregister( REGHANDLE ); ULONG EVNTAPI EventWrite( REGHANDLE, PCEVENT_DESCRIPTOR, ULONG, PEVENT_DATA_DESCRIPTOR ); ULONG EVNTAPI EventWriteString( REGHANDLE, UCHAR, ULONGLONG, PCWSTR ); ULONG EVNTAPI EventWriteTransfer( REGHANDLE, PCEVENT_DESCRIPTOR, LPCGUID, LPCGUID, ULONG, PEVENT_DATA_DESCRIPTOR ); #endif #if (WINVER >= 0x0601) ULONG EVNTAPI EventWriteEx( REGHANDLE, PCEVENT_DESCRIPTOR, ULONG64, ULONG, LPCGUID, LPCGUID, ULONG, PEVENT_DATA_DESCRIPTOR ); #endif #endif __inline VOID EventDataDescCreate( PEVENT_DATA_DESCRIPTOR x, const VOID * p1, ULONG p2 ) { x->Ptr = (ULONGLONG)p1; x->Size = p2; x->Reserved = 0; } __inline VOID EventDescCreate( PEVENT_DESCRIPTOR x, USHORT p1, UCHAR p2, UCHAR p3, UCHAR p4, USHORT p5, UCHAR p6, ULONGLONG p7 ) { x->Id = p1; x->Version = p2; x->Channel = p3; x->Level = p4; x->Task = p5; x->Opcode = p6; x->Keyword = p7; } __inline VOID EventDescZero( PEVENT_DESCRIPTOR x ) { memset( x, 0, sizeof( EVENT_DESCRIPTOR ) ); } __inline USHORT EventDescGetId( PCEVENT_DESCRIPTOR x ) { return( x->Id ); } __inline UCHAR EventDescGetVersion( PCEVENT_DESCRIPTOR x ) { return( x->Version ); } __inline USHORT EventDescGetTask( PCEVENT_DESCRIPTOR x ) { return( x->Task ); } __inline UCHAR EventDescGetOpcode( PCEVENT_DESCRIPTOR x ) { return( x->Opcode ); } __inline UCHAR EventDescGetChannel( PCEVENT_DESCRIPTOR x ) { return( x->Channel ); } __inline UCHAR EventDescGetLevel( PCEVENT_DESCRIPTOR x ) { return( x->Level ); } __inline ULONGLONG EventDescGetKeyword( PCEVENT_DESCRIPTOR x ) { return( x->Keyword ); } __inline PEVENT_DESCRIPTOR EventDescSetId( PEVENT_DESCRIPTOR x, USHORT p ) { x->Id = p; return( x ); } __inline PEVENT_DESCRIPTOR EventDescSetVersion( PEVENT_DESCRIPTOR x, UCHAR p ) { x->Version = p; return( x ); } __inline PEVENT_DESCRIPTOR EventDescSetTask( PEVENT_DESCRIPTOR x, USHORT p ) { x->Task = p; return( x ); } __inline PEVENT_DESCRIPTOR EventDescSetOpcode( PEVENT_DESCRIPTOR x, UCHAR p ) { x->Opcode = p; return( x ); } __inline PEVENT_DESCRIPTOR EventDescSetLevel( PEVENT_DESCRIPTOR x, UCHAR p ) { x->Level = p; return( x ); } __inline PEVENT_DESCRIPTOR EventDescSetChannel( PEVENT_DESCRIPTOR x, UCHAR p ) { x->Channel = p; return( x ); } __inline PEVENT_DESCRIPTOR EventDescSetKeyword( PEVENT_DESCRIPTOR x, ULONGLONG p ) { x->Keyword = p; return( x ); } __inline PEVENT_DESCRIPTOR EventDescOrKeyword( PEVENT_DESCRIPTOR x, ULONGLONG p ) { x->Keyword |= p; return( x ); } #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _EVNTPROV_H_ */