Out of all the drive types that can be set in winecfg, the only one that currently doesn't work is "Local disk", which should map to DRIVE_FIXED. It seems to me that define_unix_drive, which handles creation and changes to the "Drives" tab in winecfg, is missing the case for DRIVE_FIXED mapping to DEVICE_HARDISK_VOL, as it appears in the query_unix_drive later in mountmgr.c.
I'd like some comment on whether this patch is appropriate. 2009/3/6 Ben Klein <shackl...@gmail.com>: > This fixes bug 17618, where setting a drive type to "Local disk" does not save > the appropriate change to the registry. The problem can be traced to > mountmgr.c, > where define_unix_drive has no case for the type being "Local disk" > (DRIVE_FIXED).
From 100c129bbb1a3df3ebb68d52b22c798b6a2150c2 Mon Sep 17 00:00:00 2001 From: Ben Klein <shackl...@gmail.com> Date: Fri, 6 Mar 2009 00:49:39 +1100 Subject: mountmgr.sys: implement tracking of fixed/hardisk devices This fixes bug 17618, where setting a drive type to "Local disk" does not save the appropriate change to the registry. The problem can be traced to mountmgr.c, where define_unix_drive has no case for the type being "Local disk" (DRIVE_FIXED). --- dlls/mountmgr.sys/mountmgr.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c index 00112b9..d2b1515 100644 --- a/dlls/mountmgr.sys/mountmgr.c +++ b/dlls/mountmgr.sys/mountmgr.c @@ -264,6 +264,7 @@ static NTSTATUS define_unix_drive( const void *in_buff, SIZE_T insize ) case DRIVE_REMOTE: type = DEVICE_NETWORK; break; case DRIVE_CDROM: type = DEVICE_CDROM; break; case DRIVE_RAMDISK: type = DEVICE_RAMDISK; break; + case DRIVE_FIXED: type = DEVICE_HARDDISK_VOL; break; } return add_dos_device( letter - 'a', NULL, device, mount_point, type ); } -- 1.6.1.3