[PATCH 00/10] Support for dumb picture keychain

Guy Albertelli galberte at neo.rr.com
Thu Mar 19 22:56:51 CDT 2009


My wife received a $20 USB picture keychain (color even) for Christmas. 
Dumb little Windows program came with it. Graphic format insane. Basic
chip was Sitronix st2205.  No Linux program exists to process the whole
thing. 

Finally got it working in Wine.

Three basic issues:
1. Need to change permissions on the /dev/sdx special file created when
plugged into USB port.  NOT WINE related.
2. Need to invoke mountmgr when new drives appear.  IGNORED and
predefined it via winecfg.
3. Program does I/O to device by finding volume that returns proper data
in first 512 byte buffer. Decided to fix this issue.

Basic facilities implemented:
1. Support for opening unique NT volume ids: 
"\\?\Volume{00000000-0000-0000-0000-000000000000}" to Unix special files
(/dev/sdx)
2. Support FILE_NO_INTERMEDIATE_BUFFERING on open to do O_DIRECT.
3. Use a buffer aligned on 512 byte boundary for I/O to files with
O_DIRECT. Otherwise the I/O never works correctly. 



1/10  server: Implement FILE_NO_INTERMEDIATE_BUFFERING with O_DIRECT
2/10  kernel32/tests: First test for CreateFile on NT unique volume name
3/10  ntdll: Implement conversion of NT unique volume name to unix file
    name
4/10  ntdll: Implement internal aligned buffer for I/O with special devices
5/10  kernel32: Make GetVolumeNameForVolumeMountPoint[AW] generate correct
    name
6/10  kernel32: Implement stub for DeleteVolumeMountPoint[AW] saying we
    completed it.
7/10  kernel32/tests: Add test for unique volume names to QueryDosDevice
8/10  kernel32: Implement support in QueryDosDevice for unique volume names
9/10  server: Fix error when opening directory r/o with O_DIRECT
10/10  kernel32/tests: More tests of CreateFile on unique volume id

 dlls/kernel32/kernel32.spec  |    2 +
 dlls/kernel32/tests/file.c   |   43 +++++++++++
 dlls/kernel32/tests/volume.c |  137 +++++++++++++++++++++++++++++++++++
 dlls/kernel32/volume.c       |   72 ++++++++++++++++++-
 dlls/ntdll/directory.c       |  120 +++++++++++++++++++++++++++++++-
 dlls/ntdll/file.c            |  162 ++++++++++++++++++++++++++++++++++++++++-
 server/fd.c                  |    7 ++-
 7 files changed, 533 insertions(+), 10 deletions(-)





More information about the wine-patches mailing list