TraceLogging.cpp (1415B)
1 // Copyright (c) Microsoft Corporation. All rights reserved. 2 // Licensed under the MIT License. See LICENSE in the project root for license information. 3 4 #include "pch.h" 5 #include "TraceLogging.h" 6 7 // GUID for Microsoft.Management.Configuration : {9be929c4-3582-4629-aaa2-f427a5032b33} 8 TRACELOGGING_DEFINE_PROVIDER( 9 g_hTraceProvider, 10 "Microsoft.Management.Configuration", 11 (0x9be929c4, 0x3582, 0x4629, 0xaa, 0xa2, 0xf4, 0x27, 0xa5, 0x03, 0x2b, 0x33), 12 TraceLoggingOptionMicrosoftTelemetry()); 13 14 bool g_IsTelemetryProviderEnabled{}; 15 UCHAR g_TelemetryProviderLevel{}; 16 ULONGLONG g_TelemetryProviderMatchAnyKeyword{}; 17 18 struct TraceProvider 19 { 20 TraceProvider(); 21 22 ~TraceProvider(); 23 }; 24 25 TraceProvider g_TraceProvider{}; 26 27 void WINAPI TelemetryProviderEnabledCallback( 28 _In_ LPCGUID /*sourceId*/, 29 _In_ ULONG isEnabled, 30 _In_ UCHAR level, 31 _In_ ULONGLONG matchAnyKeyword, 32 _In_ ULONGLONG /*matchAllKeywords*/, 33 _In_opt_ PEVENT_FILTER_DESCRIPTOR /*filterData*/, 34 _In_opt_ PVOID /*callbackContext*/) 35 { 36 g_IsTelemetryProviderEnabled = !!isEnabled; 37 g_TelemetryProviderLevel = level; 38 g_TelemetryProviderMatchAnyKeyword = matchAnyKeyword; 39 } 40 41 TraceProvider::TraceProvider() 42 { 43 TraceLoggingRegisterEx(g_hTraceProvider, TelemetryProviderEnabledCallback, nullptr); 44 } 45 46 TraceProvider::~TraceProvider() 47 { 48 TraceLoggingUnregister(g_hTraceProvider); 49 }