"Alexander" == Alexander Morozov amorozov@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