226 lines
5.5 KiB
C
226 lines
5.5 KiB
C
/*
|
|
* 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_ */
|