Commit Graph

75 Commits

Author SHA1 Message Date
Alexandre Julliard e36a9c459d kernel32: Move volume functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Zebediah Figura 928d1e6447 kernel32: Implement GetVolumeInformationByHandleW().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:12:03 +02:00
Alexandre Julliard e71ffcde30 kernel32: Avoid using memchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 10:30:13 +02:00
Zebediah Figura 9b80443a8f kernel32: Reimplement GetVolumePathName() using NtQueryInformationFile(FileAttributeTagInformation).
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:14:07 +01:00
Zebediah Figura 3641983714 kernel32: Reimplement DefineDosDevice() on top of NT symbolic links.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-27 23:34:51 +01:00
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