MORE INFORMATION
This article describes the rules that Windows NT follows when
assigning drive letters. Note: Only recognized partition types (1, 4,
6, 7) are assigned drive letters.
If there is a primary partition on the first hard drive marked as
active, it gets the first drive letter (C); otherwise, the first drive
letter is assigned to the first recognized primary partition.
This process is repeated for all hard drives in the system. Please
note that if you have multiple controllers in your system, the drive
letter ordering is based on the order in which the device drivers are
loaded by Windows NT.
Once the letters have been assigned to the first primary partitions on
all drives in the system, letters are assigned to the recognized
logical disks in the extended partitions using the same scheme as
outlined above, starting with the first drive in the system.
After all of the logical disks in the extended partitions are assigned
letters, one last scan is made of the drives, and letters are assigned
to any remaining recognized primary partitions.
For drives referenced in BOOT.INI, the ordering is similar except that
the above scan is done only for drives supported in the BIOS. For
drives not supported in the BIOS, it is necessary to use the arcname
style paths. The most applicable arcname naming conventions are:
multi()disk()rdisk()partition()\...
scsi()disk()rdisk()partition()\...
The two are similar, except that the multi()disk() format varies the
rdisk() parameter for successive disks on one controller (with a limit
of two per controller), whereas the scsi()disk() notation uses the
disk() parameter. Note that the rdisk() parameter actually refers to
which SCSI logical unit (LUN) to use, which could be a separate disk,
but the vast majority of SCSI setups have only one LUN per SCSI ID.
The partition() portion of the arcname refers to the partition number.
Partition numbers are assigned, starting with partition(1). Note that
partition(0) refers to the entire disk. First, all non-extended
partitions (those having a partition type other than 0 or 5) are
assigned numbers (and the active bit does not play a role), and then
all logical drives in extended partitions are assigned numbers.
For example:
Assume a system with two controllers, one a WD1003 compliant
controller (IDE/ESDI/ST506) supported by the ATDISK driver, and the
other a SCSI host adapter supported by a SCSI miniport driver. There
are two drives attached to the ATDISK controller and one drive
attached to the SCSI host adapter (at SCSI ID 0).
There are two primary partitions on the first ATDISK drive, two
partitions (one extended partition with one FAT partition inside and
one primary NTFS partition) on the second ATDISK drive, and one
primary FAT partition on the SCSI drive.
+---------------+-----------------+
1/2| Primary (FAT) | Primary (XENIX) |
+---------------+-----------------+
+--------------------------+----------------+
3/4|Extended (one FAT inside) | Primary (NTFS) |
+--------------------------+----------------+
+--------------+
5 |Primary (FAT) |
+--------------+
The drive letters are assigned as follows:
MS-DOS: C=1, D=3, E=5 (loaded in CONFIG.SYS); 2 and 4 do not have
drive letters.
Windows NT: C=1, D=4, E=5, F=3; 2 does not have a drive letter.
NTLDR/BOOT.INI: C=1, D=4, E=3; 2 and 5 do not have drive letters.
The arcname for each of the partitions is:
1: multi(0)disk(0)rdisk(0)partition(1)
2: multi(0)disk(0)rdisk(0)partition(2)
3: multi(0)disk(0)rdisk(1)partition(2)
4: multi(0)disk(0)rdisk(1)partition(1)
5: scsi(0)disk(0)rdisk(0)partition(1)