Using (mostly) undocumented windows functions for kernel <=> usermode communication. While ALPC can also be used for UM <=> UM, this example only demonstrates KM <=> UM. I have provided R/W functionality as a POC. Feel free to add onto the project as you please.
While other examples of ALPC exist, most are very outdated, and most importantly I felt like doing it.
Good read regarding ALPC:
https://csandker.io/2022/05/24/Offensive-Windows-IPC-3-ALPC.html
See some other sources here:
https://github.com/avalon1610/LPC
https://github.com/DownWithUp/ALPC-Example
https://github.com/csandker/InterProcessCommunication-Samples
https://github.com/Galenika/Diminish-self-leak/tree/main/Kernel