This patch removes the volume querying information duplication in kernelbase by re-implementing GetVolumeInformation using GetVolumeInformationByHandle (itself implemented with NtQueryVolumeInformationFile).
v7: Fix Root_Slash to always use the correct drive letter and don't use FILE_LIST_DIRECTORY v6: No change v5: Rebase against 1b1b6c5f7d28768feb853eefd015aa714b819ed4 v4: Reordered (no content change) v3: No change v2: Reordered (no content change)
Best, Erich
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=85515
Your paranoid android.
=== w2008s64 (32 bit report) ===
kernel32: volume: Timeout
=== wvistau64 (64 bit report) ===
kernel32: volume: Timeout
=== w2008s64 (64 bit report) ===
kernel32: volume: Timeout
On Fri, Feb 12, 2021 at 1:55 PM Marvin testbot@winehq.org wrote:
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=85515 ...
I'm not sure what was going on yesterday, but re-running this job today has no errors: https://testbot.winehq.org/JobDetails.pl?Key=85543 (and nothing changed here should cause timeouts on Windows)
Best, Erich
On 2/13/21 10:27 AM, Erich E. Hoover wrote:
On Fri, Feb 12, 2021 at 1:55 PM Marvin testbot@winehq.org wrote:
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=85515 ...
I'm not sure what was going on yesterday, but re-running this job today has no errors: https://testbot.winehq.org/JobDetails.pl?Key=85543 (and nothing changed here should cause timeouts on Windows)
Best, Erich
I believe the issue was introduced by a66c38370 and fixed by 75030285d.
This fails for me:
leslie@terabithia:~/git/wine64/dlls/kernel32/tests$ make volume.ok make[1]: Entering directory '/home/leslie/git/wine64' TEST dlls/kernel32/tests/volume.ok 010c:fixme:volume:GetVolumeNameForVolumeMountPointW Mounted Folders are not yet supported volume.c:498: Test failed: GetVolumeInformationA failed on null root dir, last error 5 0058:fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS 0058:fixme:mountmgr:query_property Faking StorageDeviceProperty data 010c:fixme:volume:SetVolumeMountPointA ("C:\winetest_mnt\", "\\?\Volume{00000000-0000-0000-0000-000000000043}\"), stub! volume.c:1312: Tests skipped: Not enough permissions to create a mounted folder. make[1]: *** [Makefile:84687: dlls/kernel32/tests/volume.ok] Error 1 make[1]: Leaving directory '/home/leslie/git/wine64' make: *** [Makefile:55: volume.ok] Error 2
A log shows:
00f0:00f4:trace:file:NtCreateFile handle=0x31f4a8 access=80100000 name=L"\??\Z:" objattr=00000040 root=(nil) sec=(nil) io=0x31f4c0 alloc_size=(nil) attr=00000000 sharing=00000003 disp=1 opti ons=00000060 ea=(nil).0x00000000 00f0:00f4:trace:file:get_dos_device L"Z:" -> "/dev/sdb1" 00f4: create_file( access=80100000, sharing=00000003, create=1, options=00000060, attrs=00000000, objattr={rootdir=0000,attributes=00000040,sd={},name=L"\??\Z:"}, filename="/dev/sdb1" ) 00f4: create_file() = ACCESS_DENIED { handle=0000 }
I think we need to keep the fallback path for now, i.e. something like the following:
if (status) { nt_name.Length += sizeof(WCHAR); status = NtOpenFile( &handle, SYNCHRONIZE, &attr, &io, 0, FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT ); }