2025-04-27 07:49:33 -04:00

45 lines
965 B
C++

// EventTrace.h
#pragma once
#include "Transport.h"
// Event tracing headers.
#include <wmistr.h>
#include <evntrace.h>
typedef struct _USER_EVENT
{
EVENT_TRACE_HEADER header;
MOF_FIELD mofData;
} USER_EVENT, *PUSER_EVENT;
class CEventTraceClient : public CTransport
{
public:
CEventTraceClient();
virtual ~CEventTraceClient();
// Overrideables
virtual IsReady();
virtual BOOL SendData(LPBYTE pBuffer, DWORD dwSize);
virtual void Deinit();
// Init function.
BOOL Init(GUID *pguidEventTraceProvider);
protected:
TRACEHANDLE m_hTrace,
m_hLogger; // Non-null indicates the provider is activated.
USER_EVENT m_event; // Used for calling TraceEvent API.
static ULONG WINAPI ControlCallback(
IN WMIDPREQUESTCODE requestCode,
IN PVOID pContext,
IN OUT ULONG *pdwInOutBufferSize,
IN OUT PVOID pBuffer);
};