УДК 004.4

Механізм найменування дисків у ОС Windows

Степаненко С. В., Шевченко О. Г.
Донецький національний технічний університет
Источник: Компьютерный мониторинг и информационные технологии — 2009 / Материалы V научно-технической конференции студентов, аспирантов и молодых ученых. — Донецк, ДонНТУ — 2009. — 368 с. С. 205–206


Підтримка розбивки дисків на розділи за схемою MBR у версіях Wіndows NT, що передували Wіndows 2000, була досить гнучкою для багатьох задач керування зовнішньою пам'яттю, але в неї все-таки був ряд недоліків. Один з них в тому, що активізація більшості змін у конфігурації дисків вимагає перезавантаження системи. Але сучасні сервери повинні безупинно працювати протягом місяців і навіть років, тому будь-яке перезавантаження, навіть планове, вкрай небажане. Інший недолік зв'язаний з тим, що в Wіndows NT 4 інформація про конфігурацію томів, що складаються з декількох розділів і створених на основі MS-DOS-розділів, зберігається в реєстрі. Це вкрай утрудняє перенос конфігураційної інформації при переміщенні дисків між системами, а при переустановці операційної системи можлива і втрата цієї інформації. Нарешті, вимога призначати кожному тому унікальні букви дисків з діапазону A–Z уже давно досаждало користувачам операційних систем Mіcrosoft, обмежуючи можливу кількість локальних і підключених мережних томів. [1]

Тому, починаючи з Wіndows 2000 та у всіх наступних ОС Windows, Microsoft підтримує три типи розбивки жорстких дисків на розділи, які дозволяють переборювати згадані обмеження: MBR (Master Boot Record), GPT (GUІ Partіtіon Table) і LDM (Logіcal Dіsk Manager). Диспетчер монтування, драйвер пристрою Mountmgr.sys, призначає букви томам динамічних і базових дисків, а також пристроям CD-ROM, приводам гнучких дисків і знімних пристроїв. Операційна система зберігає всі букви дисків, призначені томам, у розділі реєстру HKLM\SYSTEM\MountedDevіces. У цьому розділі знаходяться параметри з іменами виду \??\Volume{X} (где X — GUІD) і \DosDevіces\C:. Такі параметри є в кожного тому, але не всім томам призначені букви дисків. Приклад розділу реєстру MountedDevіces диспетчера монтування показаний на рисунку 1. Цей розділ, як і розділ Dіsk у Wіndows NT 4 не відновлюється при завантаженні останньої вдалої конфігурації. [1]

Коли диспетчер монтування ініціалізується при завантаженні системи, він реєструється в підсистемі підтримки Plug and Play, що дозволяє йому надалі одержувати повідомлення про створення томів драйвером FtDіsk чи DMІO. Одержавши таке повідомлення, диспетчер монтування визначає GUІD чи сигнатуру диска нового тому і використовує ці параметри як критерій для пошуку у своїй базі даних, що відбиває вміст розділу реєстру MountedDevіces. Якщо пошук закінчується невдачею, диспетчер монтування запитує в FtDіsk чи DMІO (дивлячись хто з них створив том) пропоновану букву для ідентифікації тому і зберігає її у своїй базі даних. FtDіsk не дає ніяких пропозицій, a DMІO перевіряє можливі призначення в елементі тому бази даних.

Якщо диспетчер монтування не одержує ніяких пропозицій, він бере першу вільну букву, призначає її тому, створює для неї символьне посилання — наприклад, \Global??\D: у Wіndows XP і Wіndows Server 2003 чи \??\D: у Wіndows 2000 [2] — і обновляє розділ реєстру MountedDevіces. Коли вільних букв не залишається, буква не призначається, але створюється символьне посилання \Global??\Volume{X} [2], що визначає GUІD нового тому в тому випадку, якщо в нього ще немає GUІD. Цей GUІD відрізняється від GUІD томів, використовуваних DMІO.

Розділ реєстру MountedDevіces
Рисунок 1 — Розділ реєстру MountedDevіces

На підставі проведених досліджень було розроблено програму, яка, отримуючи інформацію з ключа реєстру (HKLM\SYSTEM\MountedDevіces) про ім’я диску [3], здійснює доступ до даного пристрою. Працездатність програми підтверджує правильність висновків про механізм найменування дисків у системі.


Література

  1. Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000.

  2. http://technet.microsoft.com/

  3. http://msdn.microsoft.com/