kernel32: Return correct drive type for empty drives

GOUJON Alexandre ale.goujon at
Fri Aug 31 09:44:44 CDT 2012

On 08/29/2012 09:35 PM, Alexandre Julliard wrote:
> Alexandre Goujon <ale.goujon at> writes:
>> Should fix bug #17037
>> I followed your advice and now, I only ask the mountmgr when needed.
>> ---
>>   dlls/kernel32/volume.c |   10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
> This is failing here when the drive is empty:
> ../../../tools/runtest -q -P wine -M kernel32.dll -T ../../.. -p volume.c && touch volume.ok
> volume.c:132: Tests skipped: can't test removing fake drive
> volume.c:785: Test failed: IOCTL_DVD_READ_STRUCTURE (DvdPhysicalDescriptor) failed, last error = 87
> make: *** [volume.ok] Error 1
> If I put a DVD in I get:
> volume.c:813: Test failed: IOCTL_DVD_READ_STRUCTURE should have failed
> Probably the tests need some fixing.
I worked on these issues and found that :
+ "make volume.ok" is different than "wine volume" 
(WINETEST_PLATFORM=wine is set in the first command)
+ the error

"volume.c:813: Test failed: IOCTL_DVD_READ_STRUCTURE should have failed"

comes from a missing check. I fixed it with
+ the error

"volume.c:785: Test failed: IOCTL_DVD_READ_STRUCTURE (DvdPhysicalDescriptor) failed, last error = 87"

comes from ioctl() failing (errno = ENOMEDIUM), returning 
STATUS_INVALID_PARAMETER hence last error = 87 
(ERROR_INVALID_PARAMETER).  I fixed that with

Except the fact that I wasn't testing my patch the right way (I'm not 
very proud of it), this also proved the TestBot is not very efficient 
regarding volume tests.
So, I am proposing to add several virtual drives to some virtual 
machines. Is it possible ? I can work on it if needed.
With genisomage and mkudffs, it's very easy to generate ISO files of 
different kinds.
It won't be the same as with real discs and real drives but at least, it 
would prevent some regressions..
Any comment on this ?

More information about the wine-devel mailing list