Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС.docx
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.18 Mб
Скачать

62. Присвоение имен устройствам, управление дисками в Windows. (Лекция 12)

Базовые диски: Для управления используется диспетчер разделов (partmgr.sys), диспетчер томов ftdisk.sys и драйвер класса диска. Ftdisk – драйвер шины (ищет базовые диски и уведомляет PnP); обеспечивает соответствие между разделами (partitions) и томами (volumes). Диспетчер разделов отвечает за согласованность действий ftdisk и драйвера класса (при создании и удалении).

Динамические диски: Служба DMAdmin - управление дисками и томами. Драйверы: dmioдиспетчер томов; dmboot – загрузка; dmconfig - чтение-запись конфигурации; dmload - поиск I динамического диска.

Отличие от базовых – DMIO напрямую не работает с конфигурацией и не участвует в загрузке.

Драйвер класса диска Windows 2000 создает объекты «устройство», представляющие диски и дисковые разделы. Имена таких объектов имеют вид \Dcvice\HarddiskA\DRA', где X - номер диска. Для идентификации объектов "устройство», представляющих разделы, драйвер класса диска использует функцию loReadPartitionTable диспетчера ввода-вывода. Драйвер класса диска вызывает эту функцию для каждого диска, представленного минипорт-драйвером драйверу класса на ранних стадиях загрузки системы. loReadPartitionTable инициирует дисковый ввод-вывод на уровне секторов, поддерживаемый драйверами класса, порт- и минипорт-драйверами, для считывания таблицы разделов MS-DOS и формирования внутреннего представления жестких разделов диска. Драйвер класса диска создает объекты «устройство", представляющие все главные разделы (в том числе внутри дополнительных), которые этот драйвер получает от loReadPartitionTable. Вот пример имени объекта раздела: \Device\HarddiskO\DP(l)Ox7eOOO-Ox7ff50cOO+2. Это имя идентифицирует первый раздел первого диска системы. Два первых шестнадцатеричных числа (Ох7еООО и Ox7ff50cOO) определяют начало и длину раздела, а последнее число - внутренний идентификатор, назначенный драйвером класса. Для совместимости с приложениями, использующими правила именования, принятые в Windows NT 4, драйвер класса диска формирует для имен в формате Windows NT 4 символьные ссылки на объекты «устройство», созданные драйвером. Например, драйвер класса диска создает ссылки \Device\HarddiskQ\PartitionO на \Device\HarddiskO\DRO и \Device\HarddiskO\Partitionl на объект «устройство» первого раздела первого диска. В Windows 2000 драйвер класса создает такие же символьные ссылки, представляющие физические диски, созданные в системах под управлением Windows NT 4. Так, ссылка \??\PhysicalDriveO указывает на \Device\HarddiskO\DRO. Есть утилита Winobj, которая отображает содержимое каталога Harddisk базового диска. Win32 API ничего не знает о пространстве имен диспетчера объектов, Windows 2000 резервирует два подкаталога пространства имен для Win32, один из которых - подкаталог \??. В этом подкаталоге объекты «устройство», включая диски, последовательные и параллельные порты, становятся доступными Win32-npH7icoKeHHflM. Так как на самом деле объекты дисков находятся в своих подкаталогах, для связывания имен в \?? с объектами, расположенными в других каталогах пространства имен, Windows 2000 использует символьные ссылки, Диспетчер ввода-вывода создает ссылку \??\PhysicalDriveX для каждого физического диска системы; такая ссылка указывает на \Device\HarddiskX\Pat1titionO (где X - числа, начиная с 0), Win32-приложения, напрямую обращающиеся к секторам диска, открывают диск вызовом \ХЧп32-функции CreateFile и указывают в качестве параметра имя \\.\PhysicalDriveX (где X ~ номер диска). Прежде чем передать имя диспетчеру объектов, прикладной уровень Win32 преобразует его в \??\PhysicalDriveX. 63. Присвоение имен дискам и их монтирование в Windows. (Лекция 12)

Каталог объектов \?? (\Global??) используется диспетчером ввода-вывода. Ссылки на устройства создаются диспетчером монтирования (mountmgr.sys).

Диспетчер определяет подключение объекта или по GUID тома (dmio) или сигнатуре (ftdisk) ищет в реестре букву диска для тома. При неудаче создает новые ссылки.

База данных о смонтированных устройствах:

HKLM\System\MountedDevices.

При первоначальном монтировании:

- том анализируется всеми драйверами файловых систем;

- если система опознана, диспетчер ввода-вывода заполняет VPB.

Для предварительного опознания применяется суррогатный драйвер fs_rec.sys (file system recognizer).

Каждый объект «устройство» тома имеет блок параметров тома (volume parameter block - VPB). Он связывает том и объект «устройство» файловой системы.

При обращении к файлу диспетчер ввода-вывода находит том через \??, читает VPB и определяет

объект файловой системы и драйвер FSD, требующийся для работы.

Операционная система Windows 2000 позволяет создать более 24 томов. Но можно присвоить томам только 24 имени (буквы алфавита). Буквы А и В зарезервированы для флоппи-дисководов. (Если на компьютере нет второго флоппи-дисковода, можно использовать букву В для сетевого устройства.)

Windows 2000 допускает статическое именование устройств. Это значит, что определенные имена могут быть назначены конкретным жестким дискам и томам на постоянной основе. Если в существующую систему компьютера устанавливается новый жесткий диск, назначение его имени не влияет на имена остальных устройств.