Commit 5ea9d65c authored by Alexandre Julliard's avatar Alexandre Julliard

mountmgr: Create a new harddisk device for dynamic harddisk drives.

parent 73229f05
...@@ -134,8 +134,9 @@ static void send_notify( int drive, int code ) ...@@ -134,8 +134,9 @@ static void send_notify( int drive, int code )
/* create the disk device for a given drive */ /* create the disk device for a given drive */
static NTSTATUS create_disk_device( const char *udi, DWORD type, struct dos_drive **drive_ret ) static NTSTATUS create_disk_device( const char *udi, DWORD type, struct dos_drive **drive_ret )
{ {
static const WCHAR harddiskW[] = {'\\','D','e','v','i','c','e', static const WCHAR harddiskvolW[] = {'\\','D','e','v','i','c','e',
'\\','H','a','r','d','d','i','s','k','V','o','l','u','m','e','%','u',0}; '\\','H','a','r','d','d','i','s','k','V','o','l','u','m','e','%','u',0};
static const WCHAR harddiskW[] = {'\\','D','e','v','i','c','e','\\','H','a','r','d','d','i','s','k','%','u',0};
static const WCHAR cdromW[] = {'\\','D','e','v','i','c','e','\\','C','d','R','o','m','%','u',0}; static const WCHAR cdromW[] = {'\\','D','e','v','i','c','e','\\','C','d','R','o','m','%','u',0};
static const WCHAR floppyW[] = {'\\','D','e','v','i','c','e','\\','F','l','o','p','p','y','%','u',0}; static const WCHAR floppyW[] = {'\\','D','e','v','i','c','e','\\','F','l','o','p','p','y','%','u',0};
...@@ -156,8 +157,12 @@ static NTSTATUS create_disk_device( const char *udi, DWORD type, struct dos_driv ...@@ -156,8 +157,12 @@ static NTSTATUS create_disk_device( const char *udi, DWORD type, struct dos_driv
break; break;
case DRIVE_FIXED: case DRIVE_FIXED:
default: /* FIXME */ default: /* FIXME */
format = harddiskW; if (udi) format = harddiskW;
first = 1; /* harddisk volumes start counting from 1 */ else
{
format = harddiskvolW;
first = 1; /* harddisk volumes start counting from 1 */
}
break; break;
} }
...@@ -205,8 +210,16 @@ static NTSTATUS create_disk_device( const char *udi, DWORD type, struct dos_driv ...@@ -205,8 +210,16 @@ static NTSTATUS create_disk_device( const char *udi, DWORD type, struct dos_driv
case DRIVE_FIXED: case DRIVE_FIXED:
default: /* FIXME */ default: /* FIXME */
drive->devnum.DeviceType = FILE_DEVICE_DISK; drive->devnum.DeviceType = FILE_DEVICE_DISK;
drive->devnum.DeviceNumber = 0; if (udi)
drive->devnum.PartitionNumber = i; {
drive->devnum.DeviceNumber = i;
drive->devnum.PartitionNumber = 0;
}
else
{
drive->devnum.DeviceNumber = 0;
drive->devnum.PartitionNumber = i;
}
break; break;
} }
list_add_tail( &drives_list, &drive->entry ); list_add_tail( &drives_list, &drive->entry );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment