Sebastian Lackner sebastian@fds-team.de writes:
We already have bugs for issues caused by drivers trying to communicate with each other: https://bugs.winehq.org/show_bug.cgi?id=37356.
How do you want to decide which drivers should go into the same process, and which not? As mentioned above, loading the same driver twice is something which is not supported in most cases.
We could have configuration options for this, and maybe some heuristics to detect it automatically when possible.
If a solution with marshalling all structs back and forth is preferred, there is also no need to move the code for loading the driver. Instead, ZwLoadDriver should spawn a new service then. However that only works as long as drivers use officially documented structures.
I don't think we want to marshall kernel data structures across processes.