define_unix_drive in mountmgr.c includes all cases used in query_unix_drive except the DRIVE_FIXED == DEVICE_HARDDISK_VOL mapping. This patch fixes 17618 where setting the drive type to "Local disk" in winecfg does not save the change to the registry.
I've CC'd wine-devel in the hope of getting some feedback this time. This is the 3rd or 4th time I've submitted this patch.
Ben Klein shacklein@gmail.com writes:
From 100c129bbb1a3df3ebb68d52b22c798b6a2150c2 Mon Sep 17 00:00:00 2001 From: Ben Klein shacklein@gmail.com Date: Fri, 6 Mar 2009 00:49:39 +1100 Subject: mountmgr.sys: implement forced setting of fixed/local disk
define_unix_drive in mountmgr.c includes all cases used in query_unix_drive except the DRIVE_FIXED == DEVICE_HARDDISK_VOL mapping. This patch fixes 17618 where setting the drive type to "Local disk" in winecfg does not save the change to the registry.
The problem is that there are two kinds of disk devices, and HARDDISK_VOL should only be used for things that have an actual device associated, i.e. USB sticks and the like. Currently there's no way to make that distinction in winecfg or in the registry.
I don't think we want to extend the existing mechanism because the registry config needs to be changed anyway. There's a lot more information that mountmgr needs to store beyond just hd/cdrom/floppy, and extending the current scheme will only make it harder to change while maintaining backwards compatibility.
Though I'd expect the current behavior to work fine since the harddisk type is autodetected. Is there really a need to configure an explicit HARDDISK_VOL device from winecfg, or is it just because it's there in the winecfg dropdown?
2009/6/4 Alexandre Julliard julliard@winehq.org:
Ben Klein shacklein@gmail.com writes:
From 100c129bbb1a3df3ebb68d52b22c798b6a2150c2 Mon Sep 17 00:00:00 2001 From: Ben Klein shacklein@gmail.com Date: Fri, 6 Mar 2009 00:49:39 +1100 Subject: mountmgr.sys: implement forced setting of fixed/local disk
define_unix_drive in mountmgr.c includes all cases used in query_unix_drive except the DRIVE_FIXED == DEVICE_HARDDISK_VOL mapping. This patch fixes 17618 where setting the drive type to "Local disk" in winecfg does not save the change to the registry.
The problem is that there are two kinds of disk devices, and HARDDISK_VOL should only be used for things that have an actual device associated, i.e. USB sticks and the like. Currently there's no way to make that distinction in winecfg or in the registry.
I don't think we want to extend the existing mechanism because the registry config needs to be changed anyway. There's a lot more information that mountmgr needs to store beyond just hd/cdrom/floppy, and extending the current scheme will only make it harder to change while maintaining backwards compatibility.
Thanks for the response. The patch is intended to synchronise define_unix_drive with query_unix_drive (which currently has the DRIVE_FIXED to DEVICE_HARDDISK_VOL mapping).
Though I'd expect the current behavior to work fine since the harddisk type is autodetected. Is there really a need to configure an explicit HARDDISK_VOL device from winecfg, or is it just because it's there in the winecfg dropdown?
Forest Hale submitted a couple of bugs relating to this (17619 and 17618). The problem is that Wine correctly detects a network share (in this case NFS on /home) but some applications (e.g. Steam) refuse to install on network drives, so he wanted to override it with winecfg. Overriding doesn't work, due to what I believe is simply an omission in define_unix_drive where it doesn't handle the case of DRIVE_FIXED to DEVICE_HARDDISK_VOL mapping.
I understand that you want this behaviour reworked, but for now, I don't see the harm in synchronising the define and query functions (since it's such a small thing).
Ben Klein shacklein@gmail.com writes:
Forest Hale submitted a couple of bugs relating to this (17619 and 17618). The problem is that Wine correctly detects a network share (in this case NFS on /home) but some applications (e.g. Steam) refuse to install on network drives, so he wanted to override it with winecfg.
We probably shouldn't return network type for NFS, it's not really a network share in the Windows sense.
Overriding doesn't work, due to what I believe is simply an omission in define_unix_drive where it doesn't handle the case of DRIVE_FIXED to DEVICE_HARDDISK_VOL mapping.
It's not simply an omission, this was deliberate; but looking at the code some more, it looks like it may no longer be necessary now that the other parts of mountmgr seem to be handling this case correctly. I'll need to retest this.