Commit graph

158 commits

Author SHA1 Message Date
Alexandre Julliard
9d293a1e9b mountmgr: Put the Unix helpers in a separate Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 21:19:45 +01:00
Alexandre Julliard
af7b364a28 mountmgr: Move the macOS credentials support to a separate file.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 21:19:45 +01:00
Alexandre Julliard
086e9e0eda mountmgr: Add some helpers to abstract the Unix calls from mountmgr.c.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 18:21:55 +01:00
Alexandre Julliard
9c587c5099 mountmgr: Add some helpers to abstract the Unix calls from device.c.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 18:21:55 +01:00
Alexandre Julliard
88cde9e717 mountmgr: Pass the SCSI device information when creating a volume.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 12:38:59 +01:00
Alexandre Julliard
37b7259f07 mountmgr: Remove the obsolete libhal support.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 12:38:59 +01:00
Alexandre Julliard
dbe3269c9d mountmgr: Pass a Unix interface name in the dhcp_request_params ioctl.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 12:38:59 +01:00
Alexandre Julliard
ef9a0f3bc3 include: Don't include stdlib.h in wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Alexandre Julliard
341cb1a933 include: Don't include fcntl.h in wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-30 22:36:22 +02:00
Alexandre Julliard
c27832d717 include: Don't include sys/stat.h in wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-30 22:34:28 +02:00
Alexandre Julliard
6ba7773121 makefiles: Add a -mcygwin flag to specify the inverse of -mno-cygwin.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard
b3ea395681 mountmgr: Support $HOME paths to define shell folders.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 16:50:00 +02:00
Alexandre Julliard
fefb5da4ba mountmgr: Make creating a backup optional for shell folders.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 16:49:30 +02:00
Alexandre Julliard
0a8776d455 mountmgr: Add requests to query and set shell folder symbolic links.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-07 21:35:54 +02:00
Zebediah Figura
56104123d9 mountmgr: Return STATUS_BUFFER_OVERFLOW if an insufficient buffer is passed to IOCTL_MOUNTMGR_ENUMERATE_CREDENTIALS.
STATUS_MORE_ENTRIES is used for directory enumeration APIs, and signals that a
continuation will be returned on the next call.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 10:57:21 +02:00
Zebediah Figura
33ed41950d mountmgr: Return STATUS_BUFFER_OVERFLOW if an insufficient buffer is passed to IOCTL_MOUNTMGR_QUERY_DHCP_REQUEST_PARAMS.
STATUS_MORE_ENTRIES is used for directory enumeration APIs, and signals that a
continuation will be returned on the next call.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 10:57:19 +02:00
Zebediah Figura
a200c47c32 mountmgr: Return STATUS_BUFFER_OVERFLOW if an insufficient buffer is passed to IOCTL_MOUNTMGR_QUERY_POINTS.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 10:57:16 +02:00
Zebediah Figura
17ebac8482 mountmgr: Validate the output size for IOCTL_MOUNTMGR_QUERY_POINTS.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 10:57:11 +02:00
Huw Davies
76b31a2ed8 mountmgr: Retrieve the unix-name from the alias.
If, at some point, we change that, we can add a Wine-only nsi table
that holds the luid to unix-name mapping.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-07 11:34:08 +02:00
Huw Davies
e5b90e93b2 dhcpcsvc: Pass a luid instead of the adapter name.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-07 11:33:53 +02:00
Huw Davies
715edfb0b2 mountmgr.sys: Move dhcp lookup to a worker thread.
While this is a reasonable change per se, the motivation is to avoid a
deadlock when mountmgr.sys calls into iphlpapi and further into
nsiproxy.sys via the nsi device.  nsiproxy.sys is hosted by the same
process as mountmgr.sys so is unable to handle the request while
it is also waiting for that same request to return.

The correct long-term solution is for mountmgr.sys to call the
netio.sys versions of the iphlpapi functions.  These will call the
kernel-side versions of the nsi functions without going through the
nsi device.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:06:51 +02:00
Erich E. Hoover
3fcfbbf55a mountmgr.sys: Simplify query_unix_drive.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-26 16:48:42 +01:00
Erich E. Hoover
5a6c82e9e3 mountmgr.sys: Move query_unix_drive to drive.c.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-26 16:48:42 +01:00
Erich E. Hoover
d896c2201f mountmgr.sys: Add support for volume information queries.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-15 16:20:42 +01:00
Erich E. Hoover
d457a986de mountmgr.sys: Have mountmgr_ioctl return the same status as the IoStatus.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-05 15:38:22 +01:00
Erich E. Hoover
b13f2e11da mountmgr.sys: Have harddisk_ioctl return the same status as the IoStatus.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-05 15:38:22 +01:00
Alexandre Julliard
6ca76dc5e7 include: Remove some no longer used Unicode functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-02 15:38:25 +01:00
Zebediah Figura
067c077277 mountmgr.sys: Add a comment advertising the HKLM\Software\Wine\Ports registry key.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-26 21:31:53 +01:00
Brendan Shanks
33c8a42547 mountmgr: Avoid unnecessary permission prompts on macOS 10.15 and newer.
On macOS 10.15 and newer, trying to open the device node of a removable
drive will trigger an "<app> would like to access files on a removable
volume" permission prompt, even if the user doesn't have permissions
to access the device node (which is almost always the case).

Check the value of access() (recommended by Apple for this purpose)
before opening devices.

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:37:16 +02:00
Ken Thomases
7e312c346c mountmgr: Avoid operating on a null CFStringRef, which would crash.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:24:22 +02:00
Hans Leidekker
bf9ae67275 mountmgr: Add ioctl to enumerate host credentials on macOS.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-03 17:21:44 +02:00
Hans Leidekker
26daece790 mountmgr: Add ioctl to delete host credentials on macOS.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-03 17:21:44 +02:00
Hans Leidekker
7c000ca0f4 mountmgr: Add ioctl to write host credentials on macOS.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-03 17:21:44 +02:00
Hans Leidekker
0f7cc8d9dd mountmgr: Add ioctl to read host credentials on macOS.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-02 16:30:03 +02:00
Derek Lesho
8e98dcd42e mountmgr.sys: Use SystemBuffer output for IOCTL_STORAGE_QUERY_PROPERTY.
In METHOD_BUFFERED ioctls, SystemBuffer must be used as both the input and output buffer.
Using UserBuffer directly, without any checks is dangerous and non-functional, as it will
be overwritten by the contents of SystemBuffer in a correct implementation.

Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 20:21:18 +02:00
Alexandre Julliard
bc8d04d6a5 mountmgr: Fix handling of buffer overflows in IOCTL_MOUNTMGR_QUERY_UNIX_DRIVE.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-09 15:34:00 +02:00
Alexandre Julliard
3aa4feb578 mountmgr: Use wine_get_dos_file_name() instead of wine_unix_to_nt_file_name().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-08 16:05:30 +02:00
Francois Gouget
b067eda87c mountmgr.sys: Make get_mountmgr_fs_type() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 21:07:43 +02:00
Hans Leidekker
ea9b507380 mountmgr: Fix buffer length check.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49305
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:39 +02:00
Hans Leidekker
4ed26b63ca mountmgr: Return the disk serial from IOCTL_STORAGE_QUERY_PROPERTY(StorageDeviceProperty).
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 00:14:14 +02:00
Alexandre Julliard
77bb698b32 mountmgr.sys: Avoid using wine_get_config_dir().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 13:57:35 +02:00
Zebediah Figura
54417bf8bf mountmgr: Assign a unique nonzero serial to all volumes.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:58 +02:00
Zebediah Figura
19b8aadf4b mountmgr: Return the serial and label from IOCTL_MOUNTMGR_QUERY_UNIX_DRIVE.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Zebediah Figura
54f93b9bb9 mountmgr: Allow querying a Unix device by device ID.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Zebediah Figura
cf174edfd9 mountmgr: Return the filesystem type from IOCTL_MOUNTMGR_QUERY_UNIX_DRIVE.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Zebediah Figura
37ed655903 mountmgr: Determine and store the filesystem type, label, and serial.
Copied with minimal adaptation from kernel32/volume.c

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Alexandre Julliard
cf19a7ac4f mountmgr.sys: Use standard dlopen() instead of the libwine wrappers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Jacek Caban
ce2257b55c mountmgr: Add mac-specific ioctl to lookup symbol files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 17:02:28 +02:00
Zebediah Figura
2d0e113db1 mountmgr: Return STATUS_BUFFER_OVERFLOW from query_unix_drive() if the buffer is too small.
STATUS_MORE_ENTRIES is meant for enumeration APIs like NtQueryDirectoryFile();
we are not enumerating anything here.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 09:23:16 +01:00
Zebediah Figura
aafe39a812 mountmgr: Fill the mountmgr_unix_drive structure even if the buffer is too small to hold the dynamic strings.
kernel32 actually already assumes this.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 09:23:13 +01:00