基于 Windows NT 的操作系统如何寻址设备?

bwD*_*aco 9 windows

我对符号感到困惑

multi(0)disk(0)rdisk(0)partition(1)\...

\设备\硬盘1\DR1
\设备\视频0

我只在 Windows XP 和 Windows 7 等基于 Windows NT 的操作系统的上下文中看到这些地址。 、鼠标等)、网络适配器和其他硬件?

use*_*686 9

与流行的看法相反,Windows 内核确实有一个根文件(“文件”)系统。在 *nix 中,根是/,而在 Windows 中是\. 不过,Win32 子系统不会公开它。您可以使用WinObj探索它。

一些(可能是熟悉的)NT 设备名称(M并且N只是整数):

  • \Device\HarddiskM\DRN: 磁盘
  • \Device\HarddiskVolumeN: 分区
  • \Device\CdRomN: 光驱
  • \Device\KeyboardClassN: 键盘
  • \Device\MountPointManager: 不是设备,而是跟踪存储设备
  • \Device\Null:吃掉数据并输出空值(零)

\Device\HardDisk1\DR1Windows磁盘的真实名称,并且是旧的 - 它与Windows如何引用设备无关,但与引导加载程序如何引用磁盘无关。它是如何工作的,我不知道(这个页面解释了它的一部分),但这并不是 Windows 在启动后真正关心的问题。 multi(0)disk(0)rdisk(0)partition(1)

较新版本的 Windows 使用启动配置数据 (BCD),这是一个命名文件,BCD其格式类似于注册表,而不是Boot.ini. 它通常使用唯一标识符 (GUID) 来引用卷而不是驱动器号或文件系统路径,这是较新版本的 Windows 所使用的。