70 Commits

Author SHA1 Message Date
Paul Gofman
4907f2626c kernel32: Output a message in GetVolumeInformationW() when device has no read access.
A lot of applications fail to install from CDs or mounted ISO images when Wine does
not return correct volume label from GetVolumeInformation() repeatedly asking to
insert correct disk. Most of the time it happens because the block device is read only
for user (which is typical default behaviour) and FS info cannot be read.
It looks like the hint about what went wrong will simplify things in this common case.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-07 20:18:46 +01:00
Alexandre Julliard
14fbecee65 kernel32: Add set_ntstatus() helper.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-01 09:43:27 +02:00
Alexandre Julliard
59e1d114a4 kernel32: Use strncmpiW instead of memicmpW for strings without embedded nulls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-07 11:31:05 -05:00
Michael Stefaniuc
fe70e0e58f kernel32: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Mark White
d37d9860a1 kernel32: Fix forward slash path handling to GetVolumePathNameW.
Signed-off-by: Mark White <chopinbig2@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-26 12:13:15 +02:00
Alexandre Julliard
d23815827d kernel32: Rely solely on the DosDevices symbolic links in QueryDosDevice.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-03 11:50:02 +02:00
Austin English
ad6c781eb2 kernel32: Add GetVolumeInformationByHandleW stub.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-21 20:52:04 +01:00
Francois Gouget
c8d1fbc6d2 kernel32: Fix typos in a couple of comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-04 11:01:42 +09:00
Jacek Caban
8294722142 kernel32: Pass SYNCHRONIZE flag to NtOpenFile.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-30 21:01:59 +09:00
Marcus Meissner
c1d262f66d kernel32: GetCurrentDirectoryW gets characters, not bytes. 2015-06-26 20:35:06 +09:00
Erich E. Hoover
ed151a5efc kernel32: Handle device paths in GetVolumePathName.
NT-style paths that have a device prefix (\??\) also return the drive
of the current working directory (even if they're valid devices).
2015-06-23 20:46:08 +09:00
Erich E. Hoover
5a84969f39 kernel32: Handle bogus DOS paths in GetVolumePathName.
Paths that are not NT and not even close to DOS don't actually fail
catastrophically.  Even though MSDN suggests that it returns the boot
drive in this case, tests indicate that it returns the drive of the
current working directory.
2015-06-23 20:46:07 +09:00
Erich E. Hoover
e8e13308ea kernel32: Handle semi-DOS paths in GetVolumePathName.
Add support for "semi-DOS" paths, these paths revert to the drive
letter specified in the first character.
2015-06-23 20:46:03 +09:00
Erich E. Hoover
f6c7e247ad kernel32: Implement GetVolumePathName.
The purpose of this function is to return the most fundamental path
without leaving a filesystem.  Steam uses this so that it can use inode
searches, without this functionality some installations/validations will
fail if the Steam Library is not on the same drive as Steam
itself (symlink'd to another location).
2015-06-23 20:44:21 +09:00
Alexandre Julliard
c4fb1f617d kernel32: Get rid of the hardcoded NUL device in QueryDosDeviceW. 2015-05-21 17:37:42 +09:00
Alexandre Julliard
f32600d3c1 kernel32: Check NT symlink first for all devices in QueryDosDeviceW. 2015-05-21 17:37:14 +09:00
Michael Müller
f556d0e936 kernel32: Return correct device type for cd devices without medium. 2015-05-19 19:24:20 +09:00
Austin English
295f194804 kernel32: Add SetVolumeMountPointA/W stubs. 2015-02-12 22:12:22 +09:00
Thomas Faber
7865b1a277 kernel32: Do not omit mandatory argument to DeviceIoControl. 2014-07-21 11:55:35 +02:00
Bruno Jesus
3465646d44 kernel32: Fix parameters checking for GetVolumePathName(). 2013-09-09 22:09:59 +02:00
Nikolay Sivov
9bf8a5ec6f kernel32: Simplify constant string length calculation. 2013-08-28 11:09:16 +02:00
Andrew Talbot
ac79a3f9d3 kernel32: Avoid signed-unsigned integer comparisons. 2013-02-12 10:17:08 +01:00
Alexandre Goujon
d0001e357a kernel32: Use the FSD sector location to compute the serial of a UDF volume. 2012-12-11 20:45:43 +01:00
Erich Hoover
6e0d43811b kernel32: Report FILE_PERSISTENT_ACLS flag for NTFS volumes. 2012-09-20 19:58:50 +02:00
Alexandre Goujon
4d7f510bef kernel32: Reimplement GetLogicalDrives using Nt{Open, Query}DirectoryObject. 2012-07-30 17:57:50 +02:00
Austin English
729afb18fe kernel32: Add more tracing to GetDiskFreeSpaceW. 2012-06-25 10:39:36 +02:00
Austin English
1726427113 kernel32: Add stubs for DeleteVolumeMountPointA/W. 2012-03-14 17:30:18 +01:00
Andrew Talbot
d5ad5ca91c kernel32: Remove extraneous braces from switch statement. 2011-11-07 11:53:52 +01:00
Marcus Meissner
df69fa186f kernel32: Make sure we reference stack data still in scope (Coverity). 2011-11-02 16:07:00 +01:00
Francois Gouget
f8c315e052 kernel32: Add parentheses to clarify the precedence between '&' and '||'. 2011-09-09 16:09:52 +02:00
Alexandre Goujon
73f4e23938 kernel32: Add UDF support.
Based on Steven Wallace work.
2011-09-06 12:23:55 +02:00
Hans Leidekker
552715f0c1 kernel32: Implement and test GetVolumePathNamesForVolumeName. 2011-03-29 15:41:11 +02:00
André Hentschel
78160d4fe1 kernel32: Add stub for GetVolumePathNamesForVolumeNameA. 2011-03-10 12:52:48 +01:00
Marcus Meissner
a91b65960f kernel32: Avoid shadowing "status" variable. 2011-02-28 11:07:06 +01:00
Alexandre Julliard
332361c1bb kernel32: Fix a trace to print the correct error code. 2010-11-04 16:43:21 +01:00
Alexandre Julliard
1379269587 kernel32: Fix a FAT format sanity check for floppies. 2010-10-25 13:52:51 +02:00
Alexandre Julliard
1455604704 kernel32: Fix last error code in GetVolumeInformationW when an explicit subdir is requested. 2010-10-20 12:29:45 +02:00
Alexandre Julliard
357b50600b kernel32: Use the NT name to retrieve label and serial in GetVolumeInformationW. 2010-10-20 12:26:54 +02:00
Alexandre Julliard
5820f40862 kernel32: Use the NT name to open the root directory in GetVolumeInformationW. 2010-10-20 12:25:32 +02:00
Alexandre Julliard
732534f954 kernel32: Use the NT name to open the device in GetVolumeInformationW. 2010-10-20 12:23:00 +02:00
Alexandre Julliard
ee0f0da69b kernel32: Use RtlDosPathNameToNtPathName_U to validate the path in GetVolumeInformationW. 2010-10-20 12:19:59 +02:00
Louis Lenders
3c92b6c5e4 kernel32: Add stub for GetVolumePathNamesForVolumeNameW. 2009-10-23 12:38:31 +02:00
Alexandre Julliard
985dd53712 kernel32: Store the symlink target directly into the correct buffer in GetVolumeNameForVolumeMountPointW. 2009-10-22 14:57:24 +02:00
Alexandre Julliard
f18276fe0b kernel32: Fetch more information from the DosDevices directory for QueryDosDevice. 2009-07-24 11:01:41 +02:00
Guy Albertelli
c1f161a678 kernel32: Fix GetVolumeNameForVolumeMountPointW to match Mountmgr. 2009-05-26 15:36:53 +02:00
Guy Albertelli
f7e6777e6e kernel32: Fix GetVolumeInformation[AW] to require trailing \. 2009-04-29 13:38:56 +02:00
Alexandre Julliard
72f89d6bfc Revert "kernel32: Report unixfs instead of ntfs for unknown filesystem type."
This reverts commit 8044c11ecfca09e2b643feccb95a4d8f645ba656.
2009-04-27 13:25:53 +02:00
Hans Leidekker
9b9d8dc3e8 kernel32: Improve GetVolumePathName stub. 2009-04-23 18:14:26 +02:00
Aric Stewart
8044c11ecf kernel32: Report unixfs instead of ntfs for unknown filesystem type.
This avoids programs such as the .Net2.0 installer trying to do ntfs
specific functions on the disk.
2009-03-23 12:41:36 +01:00
Michael Stefaniuc
9b2730eb88 kernel32: Remove superfluous pointer casts. 2009-03-11 13:03:31 +01:00