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).