TraceLogging.cpp (1409B)
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.PackageManager.Client : {c0cf606f-569b-5c20-27d9-88a745fa2175} 8 TRACELOGGING_DEFINE_PROVIDER( 9 g_hTraceProvider, 10 "Microsoft.PackageManager.Client", 11 (0xc0cf606f, 0x569b, 0x5c20, 0x27, 0xd9, 0x88, 0xa7, 0x45, 0xfa, 0x21, 0x75), 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 }