winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }