The Wine project emulates the Windows API in user space. One particular part of that API, namely the NT synchronization primitives, have historically been implemented via RPC to a dedicated "kernel" process. However, more recent applications use these
APIs more strenuously, and the overhead of RPC has become a bottleneck.
The NT synchronization APIs are too complex to implement on top of existing primitives without sacrificing correctness. Certain operations, such as NtPulseEvent() or the "wait-for-all" mode of NtWaitForMultipleObjects(), require direct control over the
underlying wait queue, and implementing a wait queue sufficiently robust for Wine in user space is not possible. This proposed driver, therefore, implements the problematic interfaces directly in the Linux kernel.
↫ Elizabeth Figura on the lkml
This proposed driver would yield some serious performance results.
https://www.osnews.com/story/138451/windows-nt-synchronization-primitives-driver-for-the-linux-kernel-proposed/
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)