1#ifndef TRACE_ETW_UTIL_H
2#define TRACE_ETW_UTIL_H
31#define TRACE_ETW_UTIL_EXPORT
39#define TRACE_ETW_UTIL_API
43#ifndef __INTELLISENSE__
44 #ifndef TRACE_ETW_UTIL_STATIC
45 #ifdef TRACE_ETW_UTIL_EXPORTS
46 #define TRACE_ETW_UTIL_EXPORT __declspec(dllexport)
48 #define TRACE_ETW_UTIL_EXPORT __declspec(dllimport)
51 #define TRACE_ETW_UTIL_EXPORT
54 #define TRACE_ETW_UTIL_EXPORT
56#ifndef TRACE_ETW_UTIL_API
57 #define TRACE_ETW_UTIL_API __stdcall
70typedef struct _tlgProvider_t const *etw_provider_ref_t;
98#define TRACE_ETW_UTIL_DEFINE_PROVIDER(var, name, guid) \
99 TRACELOGGING_DEFINE_PROVIDER(var, name, guid)
104typedef struct etw_provider etw_provider_t;
126 TRACE_ETW_UTIL_EXPORT etw_provider_t *TRACE_ETW_UTIL_API
127 etw_provider_init(etw_provider_ref_t provider_ref);
155 TRACE_ETW_UTIL_EXPORT
int TRACE_ETW_UTIL_API
156 etw_provider_write(etw_provider_t *handle,
int level,
157 const char *service,
const char *message);
165 TRACE_ETW_UTIL_EXPORT
void TRACE_ETW_UTIL_API
166 etw_provider_dispose(etw_provider_t *handle);
174 #define ETW_SESSION_OK 0
176 #define ETW_SESSION_ERR_PARAM -1
178 #define ETW_SESSION_ERR_ACCESS -2
180 #define ETW_SESSION_ERR_SYSTEM -3
195 typedef void (*etw_event_callback_t)(
int level,
const char *message,
void *context);
198 typedef struct etw_session etw_session_t;
217 TRACE_ETW_UTIL_EXPORT
int TRACE_ETW_UTIL_API
218 etw_session_check_access(
void);
248 TRACE_ETW_UTIL_EXPORT etw_session_t *TRACE_ETW_UTIL_API
249 etw_session_start(
const char *session_name,
250 const char *provider_guid_str,
251 etw_event_callback_t callback,
263 TRACE_ETW_UTIL_EXPORT
void TRACE_ETW_UTIL_API
264 etw_session_stop(etw_session_t *session);