https://bugs.winehq.org/show_bug.cgi?id=37355
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello Derek,
--- quote --- I have no experience in wine development, but I do not understand why Linux would need a kernel driver to implement this funtion. Doesn't everything run under wine run in userspace? --- quote ---
the term 'kernel driver' refers to the Windows terminology. Unless explicitly stated otherwise, Windows terminology is used when talking about technologies, software architecture etc. There exist kernel and userspace drivers on Windows. Nowadays MS provides Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF) to ease development.
Under Wine the kernel driver PE binaries are mapped in userspace into 'winedevice' hosting process (Windows has a similar concept of a host process for usermode drivers), and the code is executed in user mode like any other Linux process. That's how Wine works by design.
This is in contrast to the 'ReactOS' project (https://www.reactos.org/) where these kernel drivers are running in kernel space/mode, exactly as in Windows.
There is another project called 'Longene' which claims to be a hybrid, that is providing infrastructure in Linux kernel to run Windows kernel drivers indeed in Linux kernel address space (https://en.wikipedia.org/wiki/Longene). That project was ill-fated from start (disclaimer: personal opinion) and seems abandoned now.
Regards