Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
После установки наблюдаем следующую картину (рис. 8).
Рисунок 8. Устанавливаем дополнительные драйверы
Автоматически были установлены драйверы SCSI, SVGA (и теперь экран настроен в разрешение 800х600), специальный драйвер сетевой карты, то есть так как задано в секции [Display] файла WINNT.SIF. Все перечисленные драйверы вместе со всеми необходимыми файлами были скопированы из директории C:DriversVery_looooong_filename внутрь установочной директории MS Windows XP, что видно на рис. 8 в окошке поиска. Здесь можно сделать вывод, что директорию с драйверами можно в конце установки удалять, так же как и директорию с дистрибутивами устанавливаемых программ в секции [GuiRunOnce]:
# grep -n rmdir WINNT.SIF
539:"%windir%system32cmd.exe /c rmdir %systemdrive%InstData /s /q"
540:"%windir%system32cmd.exe /c rmdir %systemdrive%Drivers /s /q"
А вот парочка драйверов vmmemctl.sys и vmmouse.sys так и не нашла себе применения. И поэтому осталась только в C:DriversVery_looooong_filename.
Еще одно интересное наблюдение было сделано в [10]. Установщик не ищет драйвера и их INF-файлы во вложенных директориях от указанной в OemPnPDriversPath, но если записать несколько путей через точку с запятой, то они будут обрабатываться в порядке сортировки имен. То есть если некоторые драйвера, например чипсета, требуется установить первыми, то директорию с ними надо назвать именем с использованием символов с меньшими номерами в кодировке.
В формате WINNT.SIF используется 8-битная кодировка. Для России это cp866. Хотя достаточно добавить цифровой префикс к имени директории с драйверами, поскольку порядок цифр в всех кодировках совпадает. По мнению авторов [10], логика работы системы такова: так как драйвера чипсета необходимы для работы многих других устройств, то установка в первую очередь зависимых устройств не произойдет должным образом, если еще не установлены драйвера основных.
Но проблема с неустановленными драйверами vmmemctl.sys и vmmouse.sys таким путем не решается. Так как эти драйвера проиграли конкуренцию в PnP тем, которых предпочел PnP-резолвер, использовавший информацию из INF-файлов. И эти драйвера приходится добавлять вручную через «Мастер обновления оборудования». Выбираем «Установку из указанного места» и режим «Не выполнять поиск. Я сам выберу нужный драйвер» (см. рис. 9).
Рисунок 9. Установка драйвера vmmouse
Получается, что драйвер манипулятора мышь изVMWare не был установлен, но прошел этап регистрации. Иначе говоря, логика работы системы иная, чем это предполагают авторы [10]. Система регистрирует все драйвера. И как только после установки некоторых из них появится возможность установки зависимых, то это произойдет даже, если в последовательности сортировки имя директории с главными драйверами получило очередность после директории с зависимыми. Удивительно, что фантазия с цифровыми префиксами повторяется из рецепта в рецепт на [6] и [7].
Тем не менее метод регистрации всех драйверов заранее без учета их так называемой очередности был успешно реализован.
Добавляем драйверы устройств через DetachedProgram