copy protection - was: Re: Is it time for playing games on WINE?
Marcus Meissner
marcus at jet.franken.de
Mon Nov 10 01:11:01 CST 2003
On Fri, Nov 07, 2003 at 07:46:58PM +0100, Lionel Ulmer wrote:
> On Fri, Nov 07, 2003 at 10:32:02AM +0000, Mike Hearn wrote:
> > Lionel, could QEMU be used here? I guess the driver expects to have
> > kernel level access to the machine, so we could either:
>
> Well, as I have no idea how .SYS loading working and how it interfaces with
> the kernel, I cannot comment here.
The newer .SYS files are just PE libraries. They have smaller section alignments,
but otherwise they look just like normal DLLs.
They reference hal.dll, ntoskrnl.exe, etc. as imports.
The main hook into them is the DRIVER_OBJECT struct. On initialisation you
call the DLL entry procedure with
DriverEntry(DRIVER_OBJECT*, UNICODE_STRING *name);
if I read http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/drvrrtns_6r76.asp
correctly.
The DRIVER_OBJECT struct then gets filled with the function pointers the driver
supports.
http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/k112_6jaq.asp for a read.
The patches I posted should allow loading of these driver dlls.
However, the start function is still called PE User DLL style, which
needs to be fixed.
Ciao, Marcus
More information about the wine-devel
mailing list