On 10/20/05, Damjan Jovanovic dj015@yahoo.com wrote:
*Changed CreateFile() to check for \.\USBSCAN..., and if so open /dev/USBSCAN... instead of calling VXD_Open(). Then it does wine_server_fd_to_handle(). ... The kernel module behaves just like USBSCAN.SYS, reading and writing do raw USB bulk pipe reads and writes, and the ioctl's mostly do USB control pipe operations.
And I made a thin little STI.DLL, just the bare minimum (my scanner driver only uses IStillImage::GetDeviceList() and IStillImage::GetDeviceValue()).
Sounds pretty cool! When will you post the sources?
Now, back to my original questions: how do I generalise the kernel module to work with more scanners (it's currently hardcoded for my scanner)? I need access to wine's registry / SetupAPI to know which scanners are installed.
You might have to have a userspace winelib daemon listening for requests from the kernel, and fulfilling them by calling the registry API.