This might be a dumb question.
The architecture we are investigating has a managed UI (exe), a managed dll and a native NT service. The managed dll - the middle layer, is COM visible and exposes interop interface to be called by the native NT service. The native NT service, which is the backend, also expose COM interface to be called by the managed dll.
The query path is from UI to NT service:
Step 1. UI calls a method in the managed dll;
Step 2. Managed dll calls the NT service through its COM interface.
The desired notification path is from NT service to UI:
Step 1. NT service calls the managed DLL using its interop interface.
Step 2. The managed DLL sends the notification back to UI.
The problem is the notification path may not work at all. The managed DLL is like an in-process COM server. It will be loaded by UI.exe when UI consumes it and will be loaded into the NT service process when NT service consumes its interop interface. This means there are two instances of Managed dll, one in UI process and the other in NT service process. The communication is broken - there is no way for NT service to send notification to UI.
My question is: how can the native NT service send notification back to UI in this case?
Appreciate any reference!