I am working on STI for wine, and there is an issue I want to ask about.
At present, I changed CreateFile() to open /dev/USBSCAN... on a "\.\USBSCAN..." device, where /dev/USBSCAN... comes from a Linux kernel module that does the equivalent of Window's USBSCAN.SYS. And NtDeviceIoControl() checks whether the i/o control code is 0x8000.... (USB scanner ioctl) and if so, calls ioctl(). It all works (but most is hardcoded for my scanner at the moment).
But, the kernel module needs to know whether a newly added USB device is a scanner or not, which requires access to the wine registry / SetupAPI. One option is to make some user-space utility that the module can query for this info. The other way it could be done is to give wine the ability to load the kernel module when wine starts, and pass it a list of parameters which are the scanners it should drive. And the third way is to use a private ioctl or the proc filesystem so wine gives a running instance of the module the list of scanners, when wine itself starts running.
And how would the kernel module tell wine / STI a new scanner has arrived?
Finally, could this kernel module be distributed with wine? Its acceptance into the Linux kernel tree is doubtful.
Thank you Damjan
P.S. Is anyone working on kernel handles for wine?
__________________________________ Start your day with Yahoo! - Make it your home page! http://www.yahoo.com/r/hs