In Windows NT 4.0, drive letters are assigned by the HAL. There is a
“default” implementation within the OS, but it is up to the HAL developer on
whether or not to use that implementation. That default implementation
relies upon the DISK key to restore drive letters.
Drive letters are thus assigned during system initialization. Once the OS
has booted, it does not assign any new drive letters to physical devices.
Disk Administrator WILL change those assignments, as can other applications
(Win32 - DefineDosDevice, driver level - IoCreateSymbolicLink.) But since
names are nothing more than a per-process mapping of letters to devices (and
not even unique) it is essentially up to any application or driver that
wishes to assign drive letters to change them.
In Windows 2000 the addition of the mount manager changed this; note that
there are some additional small changes in the behavior of Windows XP.
While the OS creates a base set of drive letters, there is no requirement in
ANY version of Windows NT (4.0, 2000, XP) that requires a drive letter be
assigned to a volume. In Windows 2000 and beyond this is more common
because you can use junctions to “glue” drives together, but that’s not
required. Further, applications can then create drive letters that are
visible only to specific processes. This is (for example) how terminal
server supports multiple users - each with their own mapping of their home
directory - without causing problems with the overlap.
I hope this helps.
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
See the new NTFSD FAQ on the OSR Web Site!
-----Original Message-----
From: Alexey Logachyov [mailto:xxxxx@vba.com.by]
Sent: Monday, October 15, 2001 8:07 AM
To: File Systems Developers
Subject: [ntfsd] Re: mount manager under NT4
So, I am back. NT4 doesn’t care about is there DISK key or not. I can
reconfigure drive any way and delete DISK registry key and everything goes
alright even after reboots. But if there is DISK key all information is
taken from there. (I configured disks, exported DISK key, reconfigured
disks, deleted DISK key (with rebooting after each step); then I imported
DISK key back into registry and after next reboot all disks were configured
according to the DISK key I’ve just imported). So, who assigns drive
letters?
And another question. What are those devices with names ended with
Partition0 (like \Device\Harddisk1\Partition0)?
> Yeah, may be. But I looked for the DISK registry key on some test
machines
> with NT4 in our laboratory but could not find it. I was very confused
until
> onr of our workers suggested to run Disk Administrator (aka WINDISK). It
> said that it was running for the first time and created the DISK key. If
I
> delete the key it says that it runs for the first time again. So, as you
see
> a system can work without this key. Perhaps WINDISK uses this key for
> caching information or keeping CHANGES from standard configuration (ie
> system can work with standard configuration without this key at all but
if
> you want different drive letters or don’t want letters at all you do
need
> it). I wonder what’s gonna happen if I reconfigure drives, delete DISK
key
> and restart windows. I’ve gotta test it anyway.
>
> ----- Original Message -----
> From: “Maxim S. Shatskih”
> > To: “File Systems Developers”
> > Sent: Sunday, October 14, 2001 7:00 AM
> > Subject: [ntfsd] Re: mount manager under NT4
> >
> >
> > > IIRC on NT you must run WINDISK to assign a letter, and this creates a
> > Disk key.
> > >
> > > ----- Original Message -----
> > > From: “Alexey Logachyov”
> > > To: “File Systems Developers”
> > > Sent: Friday, October 12, 2001 6:19 PM
> > > Subject: [ntfsd] Re: mount manager under NT4
> > >
> > >
> > > > DISK registry key appears only after the first run of Disk
> > Administrator.
> > > > And I don’t want to go into deep disassembling.
> > > >
> > > > What happens when a new volume appears? Does a volume assigns a
letter
> > > > itself?
> > > >
> > > > ----- Original Message -----
> > > > From: “Maxim S. Shatskih”
> > > > To: “File Systems Developers”
> > > > Sent: Thursday, October 11, 2001 20:54
> > > > Subject: [ntfsd] Re: mount manager under NT4
> > > >
> > > >
> > > > > IIRC no. Drive letters exist as symlinks only without any central
> > > > management.
> > > > > There is also a “Disk” registry key which keeps the persistent
part of
> > > > this information and also the FtDisk configuration. It was
> > > > > described on www.sysinternals.com
> > > > >
> > > > > Max
> > > > >
> > > > > ----- Original Message -----
> > > > > From: “Alexey Logachyov”
> > > > > To: “File Systems Developers”
> > > > > Sent: Thursday, October 11, 2001 4:58 PM
> > > > > Subject: [ntfsd] mount manager under NT4
> > > > >
> > > > >
> > > > > > Is there in NT4 anything simlar to MountPointManager from Win2k?
Or
> > is
> > > > there
> > > > > > another way to get drive letter for volume (or device name or
> > > > something)?
> > > > > > How NT4 assigns drive letters and how can I be notified about
new
> > (or
> > > > > > changes in existing) volumes? Checking all symbolic links like
> > > > > > \DosDevices\C: is not a good workaround for me.
> > > > > >
> > > > > >
> > > > > > —
> > > > > > You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> > > > > > To unsubscribe send a blank email to
leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > > > > >
> > > > >
> > > > >
> > > > > —
> > > > > You are currently subscribed to ntfsd as: xxxxx@vba.com.by
> > > > > To unsubscribe send a blank email to
leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > > >
> > > >
> > > > —
> > > > You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> > > > To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntfsd as: xxxxx@vba.com.by
> > > To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
—
You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
—
You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com