So, is there any particular way to do this in Windows?
There's a service, that autostarts under SYSTEM user at every boot. By default, as stated at To schedule a task that runs with system permissions, any process, started on SYSTEM account, can't receive any information from other processes, i.e. using PostThreadMessage or SendMessage. ChangeWindowMessageFilter doesn't help.
So now, I have to do something like:
Save data to local users directory (that's done by client app).
Server every
nseconds searches for a client process. If exists, server getsusername, that started client process and inusername's folder collects data.
The thing is: client needs to send little portion of data (< 50 Mb) to the storage. That could be done only with elevated permissions. So there's an elevated server that accepts this little portions of data.