On its own, the title of this post is just a true piece of trivia, verifiable with the built-in
substtool (among other methods).Here’s an example creating the drive
[…]+:\as an alias for a directory atC:\foo:The
[…]+:\drive then works as normal (at least in cmd.exe, this will be discussed more later):However, understanding why it’s true elucidates a lot about how Windows works under the hood, and turns up a few curious behaviors.
↫ Ryan Liptak
Fascinating doesn’t even begin to describe this article, but at the same time, it also makes me wonder at what point maintaining this drive letter charade becomes too burdensome, clunky, and complex. Internally, Windows NT does not use drive letters at all, but for the sake of backwards compatibility and to give the user what they expect, a whole set of abstractions has been crafted to create the illusion that modern versions of Windows still use the same basic drive letter conventions as DOS did 40 years ago.
I wonder if we’ll ever reach a point where Windows no longer uses drive letters, or if it’s possible today to somehow remove or disable these abstractions entirely, and run Windows NT without drive letters, as Cutler surely intended. Vast swaths of Windows programs would surely curl up in fetal position and die, including many core components of the operating system itself – as this article demonstrates, very few parts of Windows can handle even something as mundane as a drive letter outside of A-Z – but it’d make for a great experiment.
Someone with just the right set of Windows NT skills must’ve tried something like this at some point, either publicly or inside of Microsoft.

A young person recently asked me why it started with C: and I just answered that B: was for the 5″1/4 floppy disk drive, like it was a really stupid question 🙂
B:: would also be the alias for A:… for those of us who were poor and could not buy a second drive.
The DOS drivers magically allowed using two names for two different floppy disks on one physical slot, allowing us to copy files — by swapping them many, many, many times. (It had built muscle memory to quickly swap and hit the R button)
My first PC (circa ’92) had a 3″1/2 drive on A: and a 5″1/4 on B: which was a pretty standard setup back then. A few years later, D: was used for my first CD-ROM drive.
larkin,
I might have missed that period. We either had 5.25 or 3.5 floppies, and rarely two drives.
Though… how did you manage to copy disks? Disable one of them in the BIOS?
sukru,
I could be misremembering, but I seem to remember my parents early computers having both 5.25 and 3.5 drives. It would have been very important at the time to have both in order to transfer one’s files from old media to new media.
In any case diskcopy is able to copy between disks using only one drive letter assignment and I believe it’s the default mode if you omit a target drive (or specify the same drive letter for both).
https://www.easydos.com/diskcopy.html
The rest of the specs were AMD386DX40 4Mo of RAM and a 80Mo HDD, running MS-DOS 5.0 and Windows 3.1. The 5″1/4 drive was a bit legacy but still used.
You could still find magazines with a game on floppy disk.
I also used them at home because it was cheaper to archive files and they never left their plastic box that opened with the key 🙂
Alfman,
You are right
The internal device swap logic in diskcopy was much better than the OS one, causing less swaps. I think there were some third party ones what would read *the entire disk* into RAM (HIMEM?) and even allow multiple duplicates. But this is more than 20+ years ago, so I am probably misremembering some details.
larkin,
AMD386DX40 + 4MB would be great for running DOOM. (Though DX266 was where the action were).
Yes, I remember getting magazines just for the bundled disk (later CD-ROM)
If memory serves (it’s been a very long time), which one was given A versus B depended solely on their position on the FDD controller cable ; mine also had a 5.25 and 3.5 both those were A and B respectively because of how they were hooked up. Pretty sure the floppies didn’t use jumpers to indicate master/slave like IDE hard disks did.
anevilyak,
Yes, It might be the position for floppies that assign master or slave, but there were options in BIOS to disable drives (for one reason or another)
(OR was it the “twist”? The cable was strange, and much longer than IDE if I recall correctly)
A: and B: were indeed reserved for floppy drives, but the capacity and physical disk size of the drives were completely irrelevant. Drive B: can be a 3.5″ 1.44MB drive, a 2.88MB drive, even a 160K 5.25″ drive.
Indeed, it was just a convention and the usual setup you would find on PC clones of that era.
I read somewhere that technically it is possible to use Windows without drive letters, they can be turned off. But I don’t remember where, and I’ve never seen it in use.
Angel Blue01,
Not sure if this is what you are talking about, but you don’t have to use drive letters because windows internally has other ids for volumes that you can use instead…
https://superuser.com/questions/465730/access-to-a-disk-drive-using-volume-id-instead-of-a-drive-letter-in-windows
I don’t think it’s a problem for windows, it should work whether or not the drive is assigned a letter, but software that tries to interpret paths might have trouble with it.
I’ll try this out sometime, but expect it to be much harder than this thread suggests. As the article points out, Explorer is making assumptions about drive letters.
What I do know is the original NT had an alias for SystemRoot, which was defined by the bootloader. All of the OS components operated from that alias, not from a drive letter. This allowed you to change the drive letter of the OS, and the system would still boot. Unfortunately this faded quite quickly – by NT 4, optional components would end up expanding SystemRoot into a drive letter path, so changing the drive letter allowed the OS to boot but all sorts of shortcuts would be broken.
But at that time, SystemRoot was still expressed in terms of a drive letter. I don’t know if the bootloader could fall back to any other designation. Note that mount points wouldn’t happen until Windows 2000, and mount points alone can’t achieve it (you need to navigate some path to find a mount point, so there needs to be a way to find an initial path without a drive letter.) All mount points did was reduce the assumption in software that there would be exactly 26 disk devices following a predictable pattern.
I’ll bet that thanks to SystemRoot, it’s probably possible to get the OS to boot without drive letters today too, but Explorer will be a casualty; it’ll need a simpler shell. Even CMD isn’t happy without drive letters (it doesn’t support UNC current directories, and believes \\?\ is a UNC path.)
This reminds me – up to, if I am not mistaken, Windows 2000, you could change the Windows installation path to anything you wanted. And NT 3.1, 3.51 and 4 defaulted to C:\WINNT.
I wonder what would happen if you just continuously upgraded an installation all the way from NT 4, if at any point it would fail because of that. It would be very surprising if C:\Windows is not hardcoded anywhere.
Even Windows 9X can be installed into any path you wanted… except it would still insist on creating “Program Files” folder. In an attempt to stuff it into one folder I have installed it into “C:\Program Files\Windows”. This worked, for a time, but then DirectX arrived… and started demanding that it should be copied from “C:\Program Files\Windows” to “C:\PROGRA~1\Windows”…
I’m pretty sure there are lots of hidden assumption like these in the Windows, these days.
malxau,
Software that performs path expansion correctly should work fine, but I can imagine a lot of software hard coding paths upon install such that reinstalling would be needed.
I assumed cmd was “dumb” enough to pass paths to the OS without trying to interpret them, but I have to test it….hold please…
Ok, so cmd apparently does try to parse the path and displays an error using the volume id when passing paths to cmd itself. However passing the volume IDs as arguments to other commands DOES work even from the command prompt. This is because cmd doesn’t interpret the command line arguments, but I’m sure you know that.
Edit: wordpress is bugging out with backslash characters. I’m just going to leave the wordpress mistakes as is, but just be aware of it.
Interestingly, while explorer’s input sanitation does not accept the volume ids, if you launch explorer using the start command or run dialog box, then apparently this bypasses the check because explorer let you browse and navigating \\?\volume even though you can’t input these paths using the UI!!! You can look at file properties and confirm that explorer is happy enough to work with such paths internally as long as the path sanitation does not get called. Explorer does check the path before running commands though.
Perhaps Windows could work with them but why? They are very convenient to use.
Back in the 1990s I think I found that you could have 104 different drive “letters”. I don’t remember how I came up with all of them but I found that I had reasons for needing more than 52 and found ways to have even more, a LOT more. But I’m 65 with lots of memories that are disappearing from my mind quicker than they should be. I don’t have dementia but doctors agree that something else IS going on and that it isn’t just my imagination and it isn’t that I just losing my memories at the same average speed of everyone else my age.
I used to be very literate in about a dozen different programming languages but now I struggle to do much of anyone with one. It’s _extremely_ frustrating when you KNOW that you KNOW things and you just can’t pull them from what feels like is close at hand.
Sabon,
You’re my dad’s age. For my generation, the US SS doesn’t even consider you to have reached full retirement age until 67 and incentive waiting until 70.
https://www.cbsnews.com/news/social-security-full-retirement-age-2025-what-to-know/
On top of that, the current system is projected to fall short of defined benefit levels, meaning even more cuts may be in the cards. Older generations not only retired years sooner, but often retired with a corporate retirement plan on top of SS (look up the concept of the “three legged stool”). These days, despite productivity and GDP being higher, corporations are keeping much larger portions for themselves. Not only do they pay fewer benefits, but we’ve been subsidizing their taxes too. Many people vote like lemmings and don’t seem to realize what’s going on. We’re slowly but surely drifting into a long term social disaster and although plenty of people are aware this is happening, those running the show are plagued by malice and ignorance.
I wonder what your input is on that? Would you be up for working a few more years are you glad you were able to get out when you did?
Yeah, that’s going to happen to every one of us as we age.