[PATCH v4] ntoskrnl.exe: Implement ZwLoadDriver and ZwUnloadDriver

Sebastian Lackner sebastian at fds-team.de
Sun Jan 24 00:11:28 CST 2016


On 24.01.2016 06:04, Alexandre Julliard wrote:
> Sebastian Lackner <sebastian at 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.
> 

I like the idea. Its not perfect, but a good compromise between isolation and
functionality. For drivers running in the same "kernel group", we should probably
use a separate thread for each one, so we can still catch most crashes. Its
relatively unlikely that a crash occurs while holding a loader or heap lock.




More information about the wine-devel mailing list