mountmgr: Create a new harddisk device for dynamic harddisk drives.
This commit is contained in:
parent
73229f05c2
commit
5ea9d65c55
|
@ -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
|
||||||
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
|
||||||
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 );
|
||||||
|
|
Loading…
Reference in New Issue