I work on developing an Extension for the EDGE browser. The Extension (UWP App) consists of 3 parts:
- The Extension itself. (JavaScript code)
- The UWP application that is for Native Messaging purposes. (UWP)
- The Desktop Bridge app that allows interaction with c++ desktop apps.(C#)
Also, I have a desktop application that is written on C++. Basically the Extension needs to establish communication with my desktop app, and to give an ability for my desktop app to get some info about the web page. My desktop application has tracing abilities, it uses ETW mechanism for tracing. It has a Controller object that is responsible for managing the Tracing Session; it has Provider that provides ability to trace some specific Events, and it has Consumer - an object that is able to display everything that was traced.
The Session has it's own unique name and GUID.
The Provider has it's own GUID.
The Provider registers itself within the session, so that Session accepts events generated by specific Provider.
Now is the question: Is there an ability to use Tracing infrastructure that I already have (written on C++), by the C# application (with EventSource) and by UWP application (using LoggingChannel, LoggingSession etc.)
I did some tries already, but without success.
For UWP application I tried to create LoggingSession by specifying NAME of my trace session, but it doesn't work. My c++ consumer is not being notified about new event happening. I have also tried create LoggingChannel and specifying my Trace Session GUID:
channel = new LoggingChannel(DEFAULT_CHANNEL_NAME, null, new Guid("xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"));
but it crashes with the exception:
Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))