--- Dan Kegel <daniel.r.kegel(a)gmail.com> wrote:
On 10/20/05, Damjan Jovanovic <dj015(a)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?
When my exams are over and I have some time to turn the hacks into semi-decent code (ie. 2-3 weeks).
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.
I had a brief look at the Windows 2000 STI.DLL import table: most of the SetupAPI functions it uses are stubs on wine :-(. It seems a lot of work to implement them too: there are handles to various structures etc. Anyone in the mood? __________________________________ Start your day with Yahoo! - Make it your home page! http://www.yahoo.com/r/hs