The credential provider starts in a user session, and the system service starts in a system session. As far as I know, this excludes Windows messages. Messages also require the creation of a window and a process with a message that is not normally served by the service.
I would suggest named pipes. The system service can create a channel and listen to it. Any instance of the credential provider is connected, and then a message is sent.
source share