Hi,

I wrote to the list a few weeks ago. I needed to support a USB device without changing the Windows dll that I have to use. I was trying to hack into wine to implement support for the USB device using CreateFile() and DeviceIoControl(). That was not a clean solution.

The author of the Windows dll has agreed to support a mid level dll that would implement functions like USBDeviceOpen(), USBDeviceClose(), USBDeviceRead(), and USBDeviceWrite(). On Windows those would use CreateFile() and DeviceIoControl(), while on Linux they would use libusb calls.

I followed the example from winelib user guide, chapter 5 "Using Linux libraries as DLLs" As an example I will talk just about USBDeviceOpen(). Here it is how it is declared together with a proxy function:

HANDLE WINAPI USBDeviceOpen(const DWORD in_dwIndex);
HANDLE WINAPI USBDeviceOpenProxy(const DWORD in_dwIndex);

This function opens a specific device from a specific manufacturer. If more than one device connected

In the spec file I put:

101 stdcall USBDeviceOpen (long) USBDeviceOpenProxy

I used winemaker, configure, make, and make install. Now I have "USBUtils.dll.so in /




Reply via email to