92 строки
3.3 KiB
C
92 строки
3.3 KiB
C
//**********************************************************************`
|
|
//* This is an include file generated by EtwPlusTool. *`
|
|
//* *`
|
|
//* Copyright (c) Microsoft Corporation. All Rights Reserved. *`
|
|
//**********************************************************************`
|
|
#pragma once
|
|
#pragma pack(push, 16)
|
|
|
|
#include "EtwPlus.h"
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Field Descriptors, used in the ETX_EVENT_DESCRIPTOR array below
|
|
//
|
|
EXTERN_C __declspec(selectany) ETX_FIELD_DESCRIPTOR ATGSampleTelemetry_SampleLoaded_Fields[2] = { {EtxFieldType_UnicodeString,0},{EtxFieldType_UnicodeString,0} };
|
|
|
|
// Event name mapping
|
|
//
|
|
#define SampleLoaded_value 1
|
|
|
|
// Event Descriptor array
|
|
//
|
|
EXTERN_C __declspec(selectany) ETX_EVENT_DESCRIPTOR ATGSampleTelemetryEvents[1] = {
|
|
{{ 1, 1, 0, 0, 0, 0, 0x0 }, "SampleLoaded", "0.7.0.1", ATGSampleTelemetry_SampleLoaded_Fields, 2, 0, EtxEventEnabledState_Undefined, EtxEventEnabledState_ProviderDefault, EtxPopulationSample_Undefined, 100, EtxEventLatency_Undefined, EtxEventLatency_ProviderDefault, EtxEventPriority_Undefined, EtxEventPriority_ProviderDefault } };
|
|
|
|
// Provider Descriptor for ATGSampleTelemetry
|
|
//
|
|
EXTERN_C __declspec(selectany) ETX_PROVIDER_DESCRIPTOR ATGSampleTelemetryProvider = { "ATGSampleTelemetry", {0x1d9d44d6,0x4b94,0x4b72,{0xa8,0xa4,0xda,0x77,0xe0,0x50,0x9e,0xbb}}, 1, (ETX_EVENT_DESCRIPTOR*)&ATGSampleTelemetryEvents, 0, EtxProviderEnabledState_Undefined, EtxProviderEnabledState_OnByDefault, 0, 100, EtxProviderLatency_Undefined, EtxProviderLatency_Normal, EtxProviderPriority_Undefined, EtxProviderPriority_Normal };
|
|
|
|
// ETW handle for ATGSampleTelemetry
|
|
//
|
|
EXTERN_C __declspec(selectany) REGHANDLE ATGSampleTelemetryHandle = (REGHANDLE)0;
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Register the provider with ETW+.
|
|
|
|
Arguments:
|
|
|
|
None
|
|
|
|
Remarks:
|
|
|
|
ERROR_SUCCESS if success or if the provider was already registered.
|
|
Otherwise, an error code.
|
|
|
|
--*/
|
|
#define EventRegisterATGSampleTelemetry() EtxRegister(&ATGSampleTelemetryProvider, &ATGSampleTelemetryHandle)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Unregister the provider from ETW+.
|
|
|
|
Arguments:
|
|
None
|
|
Remarks:
|
|
ERROR_SUCCESS if success or if the provider was not registered.
|
|
Otherwise, an error code.
|
|
--*/
|
|
#define EventUnregisterATGSampleTelemetry() EtxUnregister(&ATGSampleTelemetryProvider, &ATGSampleTelemetryHandle)
|
|
|
|
#define EventEnabledSampleLoaded() (TRUE)
|
|
|
|
// Entry point to log the event SampleLoaded
|
|
//
|
|
__inline
|
|
ULONG
|
|
EventWriteSampleLoaded(__in_opt PCWSTR ExeName)
|
|
{
|
|
#define ARGUMENT_COUNT_ATGSampleTelemetry_SampleLoaded 2
|
|
|
|
EVENT_DATA_DESCRIPTOR EventData[ARGUMENT_COUNT_ATGSampleTelemetry_SampleLoaded];
|
|
UINT8 scratch[64];
|
|
|
|
EtxFillCommonFields_v7(&EventData[0], scratch, 64);
|
|
|
|
EventDataDescCreate(&EventData[1], (ExeName != NULL) ? ExeName : L"", (ExeName != NULL) ? (ULONG)((wcslen(ExeName) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
|
|
|
|
return EtxEventWrite(&ATGSampleTelemetryEvents[0], &ATGSampleTelemetryProvider, ATGSampleTelemetryHandle, ARGUMENT_COUNT_ATGSampleTelemetry_SampleLoaded, EventData);
|
|
}
|
|
#if defined(__cplusplus)
|
|
};
|
|
#endif
|
|
|
|
#pragma pack(pop)
|