9

Я запутался с обозначениями, как

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

а также

\Device\HardDisk1\DR1
\Device\Video0

Я вижу эти адреса только в контексте операционных систем на базе Windows NT, таких как Windows XP и Windows 7. Что означают эти адреса и как они используются для обозначения таких устройств, как жесткие диски, графические адаптеры, устройства интерфейса пользователя (клавиатуры, мыши и т.д.), Сетевые адаптеры и другое оборудование?

2 ответа2

9

Вопреки распространенному мнению, ядро Windows , действительно имеет корневой системы ("Файл") файл. В * nix корнем является / , а в Windows - \ . Подсистема Win32, однако, не раскрывает ее. Вы можете изучить это с WinObj .

Некоторые (возможно знакомые) имена устройств NT (M и N - просто целые числа):

  • \Device\HarddiskM\DRN: Диски
  • \Device\HarddiskVolumeN: разделы
  • \Device\CdRomN: оптические дисководы
  • \Device\KeyboardClassN: клавиатуры
  • \Device\MountPointManager: не устройство, но отслеживает устройства хранения
  • \Device\Null: съедает данные и выводит нули (нули)

\Device\HardDisk1\DR1 - это истинное имя диска для Windows, а multi(0)disk(0)rdisk(0)partition(1) является устаревшим - он не имеет ничего общего с тем, как Windows относится к устройствам, но как загрузчик ссылается на диск. Как это работает, я понятия не имею (эта страница объясняет некоторые его части), но это не совсем то, чем занимается Windows после того, как она начинает загружаться.

В более новых версиях Windows используются Boot Configuration Data (BCD), который представляет собой файл с именем BCD , формат которого похож на формат реестра, а не Boot.ini . Обычно он использует уникальные идентификаторы (GUID) для обозначения томов, а не букв дисков или путей файловой системы, и это то, что используют более новые версии Windows.

1

Первая строка, которая была устаревшей с помощью BCD (хранилища данных конфигурации загрузки) в Windows Vista, Windows 7 и Server 2008, взята из файла boot.ini для Windows XP или Server 2003 и находится в корневом каталоге. системного диска. Это говорит Windows, куда идти (какой диск и раздел), чтобы найти системные файлы, необходимые для загрузки.

Посмотрите здесь для подробного объяснения "multi" и "rdisk". Остальное означает, что посмотрите на диск 0 (они начинаются с 0 и идут оттуда, и вы можете видеть их номера в диспетчере дисков), раздел 1 (в отличие от дисков, они начинают нумероваться с 1 и увеличиваться).

http://support.microsoft.com/kb/102873

Что касается перечисления устройств, это очень сложный предмет программирования, который объясняется здесь, если вы хотите, чтобы ваша голова взорвалась. Формат, который вы указали, - это то, как устройство рассматривается как идентификатор оборудования в реестре.

С практической точки зрения вы можете посмотреть на этот раздел реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum

для сопоставления с любой ошибкой вы можете получить значение "ID оборудования" в одном из подразделов, чтобы точно определить, к какому устройству может относиться ошибка

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .