Wine device drivers proposal

Evgeny F johnlen at
Sat Aug 27 07:24:21 CDT 2005

In message Mon, 28 Mar 2005 02:30:28 -0800, Damjan Jovanovic wrote:

> I propose adding a driver loading system to Wine that
> works as follows:
> -CreateFile() gets a device filename, like (in my
> case) \\.\MiiScan0
> -Currently, Wine's behaviour for such a filename is to
> try load a VXD.
> -In the case of VXD loading failure, a search is
> performed in (Wine's) C:\Windows\System32\Drivers (or
> somewhere else?) for a matching driver.
> The driver is then loaded and used for (at least):
> ReadFile()
> WriteFile()
> DeviceIoControl()
> CloseHandle()
I am doing now a dll which should load scanner microdriver and 
implement all the surrounding API's. Can anybody tell, what naming
convention Windows uses for USB devices ("\\.\????")?

> 2. The driver is a file giving a process to start and
> some IPC method to use. Wine starts the process and
> uses the IPC method to communicate with the driver.
> This is good as far as Wine's current ReadFile() and
> WriteFile() go, since they don't have to know they're
> not writing to an actual file. The problem here is,
> which IPC method supports both read() and write() on
> the same file descriptor, preserves message
> boundaries, and carries out-of-band data for
> DeviceIoControl()? I was thinking TCP sockets, but
> they don't preserve message boundaries.

Local UNIX sockets would do fine, do we really have to preserve
message bounderies?

More information about the wine-devel mailing list