Loading of Mingw Provided .sys files

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Wed Apr 8 05:15:03 CDT 2009


>>>>> "Alexander" == Alexander Morozov <amorozov at etersoft.ru> writes:

    >> trying to use the supplied or the mingw (cross) compiled libusb0.sys
    >> from sourceforge with the USB enabled tree from
    >> http://git.etersoft.ru/people/lav/packages/wine.git
    >> 
    >> loading libusb0.sys fails:

    Alexander> Drivers built with WinDDK is not page-aligned and
    Alexander> (nt->OptionalHeader.SectionAlignment <= page_mask) is true
    Alexander> for them.  But libusb0.sys is page-aligned: $ winedump
    Alexander> libusb0.sys | grep section section align 0x1000 4096

    Alexander> See map_image() in dlls/ntdll/virtual.c:

    Alexander>     /* check for non page-aligned binary */

    Alexander>     if (nt->OptionalHeader.SectionAlignment <= page_mask) {
    Alexander> /* unaligned sections, this happens for native subsystem
    Alexander> binaries */ /* in that case Windows simply maps in the whole
    Alexander> file */ ...............  goto done; }

The libusb-win32 Makefile sets the -shared Linker option, This results in
the DLL attribute set:
(from i386-mingw32msvc-objdump -x)
Characteristics 0x230e
        executable
        line numbers stripped
        symbols stripped
        32 bit words
        debugging information removed
        DLL

and DriverEntry being called as DllMain without the storage for the
DriverObject. 

Removing the -shared Linker option from the Makefile lets libusb0.sys at
least load. No time fort further tests yet.

Bye

-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------



More information about the wine-devel mailing list