--- Dan Kegel daniel.r.kegel@gmail.com wrote:
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?
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