How to rearrange "Disk0" to "Disk1" ?

I use a custome made programm which works only when the system hard drive shows up as "Disk0" and the RAID-0 disk (based on PCI-E card) appeares as "Disk1".
I've just upgrated my OS from Windows XP Pro to Windows 7 Pro (hardware configuration is the same). After the first reboot the system disk shown up as "Disk0" in the "Disk managemet" which is fine, but when I installed the drivers for my RAID PCI-E card, the Windows 7 Pro rearrange the system drive to "Disk1" and the RAID Drive to "Disk0". Moreover when I put USB stick Win7 makes it as "Disk0" and puts my RAID as "Disk2". It never happend tike this in Windows XP environment.
How can I rearange my "Disk0" and "Disk1" and lock them? Thank you in advance.


Honorable Member
Drive numbers are reported by Windows in the order that the BIOS enumerates them. Most BIOSes will enumerate a chip's individual drives first (i.e. the build-in IDE/SATA drives), then any RAID or AHCI volumes, then any add-in cards.

Windows NT/2K/XP/Vista/Server2000/Server2003/Server2008 doesn't care what the reported drive order is, the drive letters are kept by Windows in the registry, and are independent of the BIOS's drive ID assignment. This is unlike previous versions of Windows (95/98/ME) where the first drive reported by the BIOS was assigned as the C: drive.

The above is an old post I found, but I'll look into it a little more.

It should not matter if your C drive is 0 or 1. Why don't you change the code in your program to detect the RAID no matter what the drive number is? I am a computer programmer, so I might be able to help. What language did you program the software in?

Just to understand:
When the OS boots, PnP will ask the bus-drivers to "walk the bus" and report back all devices it sees. Then an "object" is created for each device in the sequence it is reported.

So the first drive reported will get number 0, the second reported will get number 1 and so on.

The sequence can change when you have added hardware to your system which is reported before your original disk (this is the driver reporting to PnP upon boot time)
And the sequence can change when you upgrade a driver (again the driver is reporting it to PnP, so whoever is writing the driver can change the sequence and therefore influence the numbering)

This probably doesn't really answer your question, but I hope this will help you understand physical drive numbering.

Last edited:
Well, it doesn't really answer my question. Also I want to get you attention to "hardware configuration is the same" and "It never happend like this in Windows XP environment". So, I didn't change anything (BIOS, Video, PCI-E cards). Moreover I double check BIOS. The "PnP" fiture is disabled in it. Any ideas?


Honorable Member
Conclusion: This is a known issue and is not resolved yet. This issue seems to occur only with some motherboards/disk controllers and isn't a problem for all Vista/Windows 7 installations. Some people have modified their software to optionally use the unique Disk ID instead of the disk number.
Macrium Support Forum - Changed partition numbers

From Microsoft:
The disk drive numbers may not correspond as expected to the SATA channel numbers when you set up Windows Vista, Windows Server 2008, Windows Server 2008 R2, or Windows 7 on a computer that has multiple SATA or RAID disks

Also, you should enable PnP.

Last edited:
I guess I solved the problem. Thanks ZVIT to the hint “driver is reporting it to PnP”. I’ve started to look though RAID installation package and find the string “StartType = 0” in “jraid_i.inf” (In your case the name may be different. You have to look by extension “INF”). Change the value to “1” and save the modifications. Uninstall the old RAID drivers, reboot, install the new modified one and reboot again. That’s all.
For who is interesting about “StartType” values please visit the link: INF AddService Directive

This website is not affiliated, owned, or endorsed by Microsoft Corporation. It is a member of the Microsoft Partner Program.