Hello, 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: trace:winedevice:ServiceMain starting service L"libusb0" trace:winedevice:load_driver loading driver L"c:\\windows\\system32\\drivers\\libusb0.sys" trace:winedevice:load_driver_module name L"c:\\windows\\system32\\drivers\\libusb0.sys" module (nil) trace:winedevice:ServiceMain driver L"libusb0" failed to load trace:winedevice:ServiceMain service L"libusb0" stopped Using some other USB driver instead of libusb0.sys at least loads: trace:winedevice:load_driver loading driver L"c:\\windows\\system32\\drivers\\ezusb.sys" trace:winedevice:load_driver_module name L"c:\\windows\\system32\\drivers\\ezusb.sys" module 0x81340000 trace:winedevice:load_driver_module L"c:\\windows\\system32\\drivers\\ezusb.sys": relocating from 0x10000 to 0x81340000 trace:winedevice:load_driver_module name L"NTOSKRNL.EXE" module 0x84b70000 trace:winedevice:load_driver_module name L"HAL.DLL" module 0x84590000 trace:winedevice:load_driver_module name L"USBD.SYS" module 0x84580000 trace:winedevice:init_driver trace:winedevice:init_driver init done for L"libusb0" obj 0x84c0a560 The failure happens in program/winedevices/devices.c: static HMODULE load_driver_module( const WCHAR *name ) { IMAGE_NT_HEADERS *nt; const IMAGE_IMPORT_DESCRIPTOR *imports; size_t page_size = getpagesize(); int i, delta; ULONG size; --> HMODULE module = LoadLibraryW( name ); if (!module) return NULL; LoadLibraryW loads the file and then calls the DriverEntry of libusb0: NTSTATUS DDKAPI DriverEntry(DRIVER_OBJECT *driver_object, UNICODE_STRING *registry_path) { int i; DEBUG_MESSAGE("DriverEntry(): loading driver"); /* initialize global variables */ debug_level = LIBUSB_DEBUG_MSG; /* initialize the driver object's dispatch table */ for(i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) { driver_object->MajorFunction[i] = dispatch; } driver_object->DriverExtension->AddDevice = add_device; driver_object->DriverUnload = unload; return STATUS_SUCCESS; } While loading, the protection is set to 0014:trace:virtual:VIRTUAL_DumpView 0x68640000 - 0x68640fff c-r-- and driver_object is in the 0x68640000 pages and so writing to driver_object->MajorFunction[i] through an exception and the function fails. I guess libusb0.sys works on WIN32, so here our loader does something wrong or perhaps is not bug-to-bug compatible. Any fixes? Thanks -- Uwe Bonnes b...@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------