kernel32: Loosen trailing \ requirement on GetVolumeInformationAW.

Joerg-Cyril.Hoehle at Joerg-Cyril.Hoehle at
Fri Jul 9 04:05:10 CDT 2010


The kernel32/volume test either passes or fails depending on C:'s
current directory prior to invocation in the shell.

CD \ # Use CD \windows or CD \anydir to obtain opposite results
CD \somesubdir
X:\path\to\kernel32_test.exe volume
volume.c:328: Test failed: GetVolumeInformationA w/o '\' did not fail, last error 3735928559
volume: 267 tests executed (0 marked as todo, 1 failure), 0 skipped.

>In any case, if you think the existing tests are not good enough, you
>can certainly add more of them to clarify things.

I'd like to, but how to change a drive's directory from within a program?
No combination of SetCurrentDirectory() I tried worked.
- SetCurrentDirectory("C:") is synonym to "C:\" and does not switch to
  C:'s current directory.
- SetCD("C:\..."); SetCD("D:\somesubdir\"); does not influence the
  test result like CD in the shell does, as if the last dir on C: was not remembered.
It looks like SetCurrentDirectory is from a different API layer.

DefineDOSDevice looks too low-level - I don't want new DOS devices, I
just want to influence the current directory of drive C:
"[the system] also keeps track of the current directories in each of
 the different drive letters, ... regardless of which drive designator
 is set as the current drive."

Thanks for any hints or ideas,
 Jörg Höhle

More information about the wine-devel mailing list