Показать полную графическую версию : DIT - Driver Install Tools
Mr dUSHA, не могу указать точный источник, изучал именно эту проблему несколько лет тому назад
но информация из "сервис мануала" по написанию драверов
вот есть некоторая информация общая по этому вопросу:
http://translate.googleusercontent.com/translate_c?depth=1&hl=ru&rurl=translate.google.com&sl=auto&tl=ru&twu=1&u=http://msdn.microsoft.com/en-us/library/windows/hardware/ff547454%28v%3Dvs.85%29.aspx&usg=ALkJrhgV3aQG3acwDpiZdG7Qe54y1w9BFQ
Пересоздайте индексы заново каталогизатором из текущего комплекта. С начальной версии поменялся формат индексов. »
Пробовал каталогизатором который в шапке прилеплен - тот же эффект. Может что-то не правильно делаю..
Mr dUSHA
19-09-2012, 02:28
вот есть некоторая информация общая по этому вопросу »
Так вот MSDN то как раз и есть тот самый "сервис мануал", и он для меня - основной источник информации. Только никакого деления на "до висты" и "после висты" там нет.
Начиная с Висты в Setupapi изменился принцип ранжирования драйверов при поиске Виндой наиболее подходящего для установки для найденного нового оборудования (именно там как раз учитывается при присвоении ранга наличие/отсутствие расширения .nt в имени секции). Это все подробно расписано там же, в соседнем разделе, посвященном установке драйверов. Но это несколько другая тема.
У нас же разговор был именно про синтаксис INF-ов, и их правильный парсинг средствами своей программы с целью определить, для какой Винды предназначен драйвер.
З.Ы.: МСДН рекомендую читать в оригинале, на английском, а не машинные переводы, в которых смысл очень часто искажается именно из-за ущербности движка этого самого машинного переводчика.
Цитата Boa Soft:
Пересоздайте индексы заново каталогизатором из текущего комплекта. С начальной версии поменялся формат индексов. »
Пробовал каталогизатором который в шапке прилеплен - тот же эффект. Может что-то не правильно делаю.. »
Приветствую,
Столкнулся с такой же проблемой. Удалось решить?
Boa Soft,
Как побороть проблему с индексами?
Load DriverPaks index files
Loading index from: DP_AMDfilter_wnt6-x64_1110.csv
Error loading index
Loading index from: DP_Audio_wnt6-x64_1111.csv
Error loading index
Loading index from: DP_CardReaders_wnt6-x64_11041.csv
Error loading index
Loading index from: DP_Chipset_wnt6-x64_1206.csv
Error loading index
Loading index from: DP_Gaming_wnt6-x64_812.csv
Error loading index
Loading index from: DP_Graphics_A_wnt6-x64_1203.csv
Error loading index
Loading index from: DP_Graphics_B_wnt6-x64_1203.csv
Error loading index
Loading index from: DP_Graphics_Mobile_wnt6-x64_1203.csv
Error loading index
Loading index from: DP_LAN_wnt6-x64_1208.csv
Error loading index
Loading index from: DP_MassStorage_wnt6-x64_1208.csv
Error loading index
Loading index from: DP_Misc_wnt6-x64_1202.csv
Error loading index
Loading index from: DP_Monitors_wnt6-x64_911.csv
Error loading index
Loading index from: DP_Touchpad_Mouse_wnt6-x64_1203.csv
Error loading index
Loading index from: DP_Webcam_wnt6-x64_1103.csv
Error loading index
Loading index from: DP_WLAN_wnt6-x64_1203.csv
Error loading index
Load index files complete. Total index records: 0
finish.ini как заполняется? Автоматически?
Boa Soft
08-10-2012, 15:14
Как побороть проблему с индексами? »
Столкнулся с такой же проблемой. Удалось решить? »
По ошибке попала старая версия.
Правильная версия во вложении.
По ошибке попала старая версия. »
Спасибо. Все отработало.
Осталься вопрос по finish.ini... как заполняется? Автоматически?
Boa Soft
11-10-2012, 23:34
Осталься вопрос по finish.ini... как заполняется? Автоматически? »
К сожалению, нет. Только руками.
Там надо задать условие или несколько условий, при выполнении которых будут выполнены команды.
Пример файла присутствует в комплекте.
BadPointer
20-10-2012, 19:36
В отличии от "конкурентов" уже реализовано следующее:
1. Программа по содержимому секции Manufacturer отсеивает несоответствующие версии системы и битности драйвера.
2.Программа сортирует драйвера по рангу, подобно установщику windows.
По HWID (наилучшее совпадение)
По CompatibleId (похуже совпадение)
По содержимому секции Manufacturer - драйвер NTamd64.6.1 подходит для 7 лучше чем NTamd64.6.0 или NTamd64.6
И, наконец, по дате выпуска.
3. Распаковываются только необходимые драйвера, а не пакет целиком.
4. В отличии от моего старого метода с DPInst установка идет значительно быстрее.
Не знаю точно с чем ты сравниваешь. Раньше DPS и DIA действительно записывали только один HWID, причем самый короткий и затем еще его обрезали чтобы найти фрагмент HWID'а совпадающий с тем что выдает устройство, совместимость драйверов определялась исключительно по тому в какой папке находился драйверпак.
Но примерно 2 года назад я ввел описываемую функциональность в DPS, а затем DIA и DriverX адаптировали этот подход, разве что DIA по прежнему использует DPInst. Теперь наличие этой функциональности является ожидаемым минимумом для подобных программ.
С другой стороны, если ты независимо от DPS, DIA, DriverX сразу пришел к правильному решению, то это уже положительно говорит о твоем настрое.
У меня есть некоторые вопросы:
1. Зачем при индексации предлагается исключать драйверы определенных разновидностей? На мой взгляд это лишнее.
2. Зачем в индексы заносится столбец DPInst?
3. Можно ли запустить прогу в холостом режиме? Мне бы хотелось посмотреть какие драйверы прога нашла, но при этом не запуская саму установку.
Boa Soft
20-10-2012, 23:12
С другой стороны, если ты независимо от DPS, DIA, DriverX сразу пришел к правильному решению, то это уже положительно говорит о твоем настрое. »
Началось еще с моих утилит для установки драверов для хп. Там отбор и анализ для сохранения дров (KTD по банратовской технологии) был сделан достаточно тупо - брался полный HWID, сравнивался, потом обрезался, потом сравнивался. В сохранение попадало много мусора. Дальнейшее развитие не получило.
Потом пришла 7...
Потом я адаптировал под свои нужды технологию Stand Alone Driverpack utility for all OS (XP, 2k3, 2k8, Vista, Win7)
http://forum.driverpacks.net/viewtopic.php?id=5336. По сравнению с интеграцией через DISM появилась возможность оперативно менять драйвера, уменьшился размер образа, ушли проблемы с предварительной распаковкой всех файлов драйвера итд.
Минусы - долгое время работы, отсутствие избирательности, необходим большой объем для временной папки.
DPS иногда пользовался, но напрягала проблема с ошибками при малейших проблемах в системе с IE.
Далее толчек к развитию дала помошь Mr.dUSHA в разборке inf - файлов средствами setupapi
Так же, я изучил ранжирование драверов и сделал нормальный поиск по HardwareID и CompatibleID.
1. Зачем при индексации предлагается исключать драйверы определенных разновидностей? На мой взгляд это лишнее. »
Ориентация шла на башратовские пакеты, где драйвера раздельно для каждой разрядности. Чтобы не попадались 64 бит для 32 и наоборот.
2. Зачем в индексы заносится столбец DPInst? »
Там может быть 4 значения.
DPINST - автоматическая установка средствами PnP api при наличии возможности точного сопоставления с HWID устройства.
MDPINST - ручная установка средствами PnP api при отсутствии возможности точного сопоставления с HWID устройства (точпады, тюнера итд). Дравер не выбирается автоматом. В консольной версии заглушка ибо нет взаимодействия с юзером.
RUN - - автоматическая установка посредством запуска родного инсталлятора с нужными параметрами при наличии возможности точного сопоставления с HWID устройства.
MRUN - - автоматическая установка посредством запуска родного инсталлятора с нужными параметрами при отсутствии возможности точного сопоставления с HWID устройства. Дравер не выбирается автоматом. В консольной версии заглушка ибо нет взаимодействия с юзером.
3. Можно ли запустить прогу в холостом режиме? Мне бы хотелось посмотреть какие драйверы прога нашла, но при этом не запуская саму установку.
Честно говоря, не предусматривал такую возможность. Но, можно просто удалить пакеты, оставив только индексы. »
Boa Soft
21-10-2012, 00:00
3. Можно ли запустить прогу в холостом режиме? Мне бы хотелось посмотреть какие драйверы прога нашла, но при этом не запуская саму установку. »
Только что обновил программу - можно использовать ключик -t или -test и все действия по установке и распаковке будут пропущены - только скан оборудования, загрузка индексов, отбор драйверов и создания листа распаковки.
BadPointer
21-10-2012, 01:11
Новая версия проги завершается после вывода первых трех строк
Вот фрагменты лога.
[2012-10-21,0:46:53] Operating System:
[2012-10-21,0:46:53] Product Name: Microsoft Windows XP
[2012-10-21,0:46:53] SP: Service Pack 3
[2012-10-21,0:46:53] Arch: x86
[2012-10-21,0:46:53] CommonProgramW6432: Not defined
[2012-10-21,0:46:53] TEMP: D:\DOCUME~1\HUNTER\LOCALS~1\Temp
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] *** End Common information *****************************************************
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] Error loading setup api. Programm halted!
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] Operation aborted
[2012-10-21,0:46:53] Programm terminated abnormally!!!
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] Total time: 0.31sec.
*** Log end at: 2012-10-21 0:46:53 *********************************************
Предыдущая версия у меня работала(запускал без драйверпаков).
Сейчас напишу коротко что я заметил по предыдущей версии с включенным подробным логом.
1. Оформление секции Device Info в логе мне напоминает то как оформлено в DPS, впрочем здесь вряд ли можно было сделать как то по другому.
2. Хотя прога подробно описывает процесс выбора драйвера по степени совместимости, по логу сложно сравнить версии установленного и предлагаемого к установке драйвера.
3. У меня отключен интегрированный сетевой адаптер(я использую PCI карту) в диспетчере устройств и прога ошибочно считает что драйвер не установлен.
4. Я заметил некоторые опечатки в логе "Memoru", "Assept".
5. Прога ищет драйверы для XP в папке только в папке Nt5x86. DPS, а затем и DriverX ушли от необходимости учета названия папки для определения совместимости драйвера. DIT по видимому уже обладает достаточно хорошим алгоритмом подбора драйверов чтобы также отказаться от подобной зависимости.
Когда будет время, я собираюсь более тщательно проверить сам процесс подбора драйверов.
Boa Soft
21-10-2012, 01:41
Новая версия проги завершается после вывода первых трех строк »
Поправил. В ХП нету DifXapi.dll. Еще один повод не свызыватся с этими апи.
. Оформление секции Device Info в логе мне напоминает то как оформлено в DPS, впрочем здесь вряд ли можно было сделать как то по другому. »
Делал эту часть лога подобно ему.
2. Хотя прога подробно описывает процесс выбора драйвера по степени совместимости, по логу сложно сравнить версии установленного и предлагаемого к установке драйвера. »
Ну, там есть же описание устройства и найденные к нему дравера. А в отладочном логе - да, не выводится.
3. У меня отключен интегрированный сетевой адаптер(я использую PCI карту) в диспетчере устройств и прога ошибочно считает что драйвер не установлен. »
Посмотрю, как там флаги правильно поправить.
5. Прога ищет драйверы для XP в папке только в папке Nt5x86. DPS, а затем и DriverX ушли от необходимости учета названия папки для определения совместимости драйвера. DIT по видимому уже обладает достаточно хорошим алгоритмом подбора драйверов чтобы также отказаться от подобной зависимости. »
Не хочется от такого деления отказаваться, ибо легко выкинуть дрова для любой битности или системы. И finish для каждой свой.
Например, в дистрибутиве 7 не нужны дравера от хп.
Вообще, любое деление по любым признакам можно признать спорным.
BadPointer
21-10-2012, 02:01
Не хочется от такого деления отказаваться, ибо легко выкинуть дрова для любой битности или системы. И finish для каждой свой.
Например, в дистрибутиве 7 не нужны дравера от хп.
Вообще, любое деление по любым признакам можно признать спорным. »
Я не говорю что нужно отказываться от разбиения по папкам. Я имею ввиду что прога не должна ориентироваться на то в какой папке они находятся для определения совместимости и искать только там. DPS и DriverX просматривают все подпапки и подбирают драйверы исходя из совместимости самих драйверов. Подобный подход может позволить избавится от необходимости дублировать один тот же универсальный драйвер в разных папках.
Boa Soft
21-10-2012, 11:23
Я не говорю что нужно отказываться от разбиения по папкам. Я имею ввиду что прога не должна ориентироваться на то в какой папке они находятся для определения совместимости и искать только там. DPS и DriverX просматривают все подпапки и подбирают драйверы исходя из совместимости самих драйверов. Подобный подход может позволить избавится от необходимости дублировать один тот же универсальный драйвер в разных папках. »
Так было в Stand Alone Driverpack utility for all OS и изначально я ориентировался именно на Башратовкие драйвера.
Можно достаточно легко переделать, надо только в FINISH добавть идентификатор системы и сделать его единым для всех систем.
BadPointer
21-10-2012, 11:43
Finisher был необходим при использовании DPInst. Если в DIT используется тот же метод что и в devcon, то finisher можно полностью удалить.
Boa Soft
21-10-2012, 11:54
Finisher был необходим при использовании DPInst. Если в DIT используется тот же метод что и в devcon, то finisher можно полностью удалить. »
Чем панели от ати и звучек некотрых ставить тогда? С NV если лишннего не удалять и так все в порядке.
Финишер не башратовский а свой. Ставит панели и помогает с составными устройствами - типа USB 3.0 контроллеров и нетмосовских портовок.
BadPointer
21-10-2012, 12:00
Я уже не первый год ставлю драйверы через devcon не используя какого-либо finisher'а и не замечал отсутствия панелей. Ты уверен что finisher необходим?
Boa Soft
21-10-2012, 12:13
Я уже не первый год ставлю драйверы через devcon не используя какого-либо finisher'а и не замечал отсутствия панелей. Ты уверен что finisher необходим? »
У NV панель ставится ко-инсталлером. У AMD/ATI - как отдельная программа. У Реалтека - ко-инсталлером, у конексантов, соундмакса, IDT(точно не помню) - только родным сетапом.
Плюс составные устройства. Пока например на хост-контроллер USB 3.0 не поставиш драйвера, не будут видны его "дети" - корневые контроллеры.
Можно конечно запустить весь процесс заново, но это тоже определенные расходы времени. Пока решено прописыванием в финиш и обновлением дров для "детей" при наличии родительского контроллера.
Boa Soft
24-10-2012, 00:56
Текущая версия программы 1.0.4.1
Новое в текущей версии.
1. Процедура обработки экстендеров переписана с целью возможно большего соответствия указаниям MDSN.
2. Небольшая чистка кода от мусора.
3. Добавлено дополнительное поле фильтра для дополнительного отбора драйверов в зависимости от версии OS.
4. Использованием фильтра можно управлять через UseOsFilter
4. Новый формат файлов индекса.
5. Каталогизатор переведен на новый формат индекса.
6. В каталогизатор добавлена поддержка автодобавления фильтра. Настраивается через ини-файл.
7. Небольшие доработки вывода в лог.
8. Добавлен ключь -test или -t для симуляции работы без распаковки пакетов и их установки.
После прогонки нескольких решений в реальной работе было принято решение отказаться от идеи замены обработки реальных экстендеров, полученных при индексировании из файлов, на искусственные идентификаторы OS.
Как в виду потери части информации так и сложности парсинга и создания фалов индекса. Было решено просто добавить в индекс новое поле фильтра. В результате легко отфильтровать несовместимые драйверы. Индексатор заполняет это поле на основе маркерных папок. Соответствие маркерной папки идентификатору задается в файле настроек каталогизатора.
Таким образом можно настроить под любой формат пакетов, не привязываясь к эксклюзивному формату одного сборщика.
Все, что надо сделать - проанализировать формат пакета и добавить нужные соответствия в файл конфигурации.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.