PDA

Показать полную графическую версию : [решено] DriverX (программа установки драйверов) + исходники


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [25] 26 27 28 29 30 31 32 33 34 35 36

SOLON7
15-03-2012, 14:47
Сидел и думал. сделал теоретический алгоритм коректного Бекапа дров..

1.Выбираем устроуство например PCI\VEN_8086&DEV_0042;
2.Узнаем Hard и Compatible Хвиды устройства. заносим их в BHWIDS;
3.Парсим секции MFG. Узнаем какие секции устройств есть;
[Manufacturer]
%Intel% = Intel.Mfg

4.Парсим секции где хвиды устройств. Ищем HWID из списка BHWIDS;
[Intel.Mfg]
%iCNTG0% = iCNT0, PCI\VEN_8086&DEV_2A42
%iCNTG1% = iCNT1, PCI\VEN_8086&DEV_2A43
%iEGLG0% = iEGL0, PCI\VEN_8086&DEV_2E02
%iEGLG1% = iEGL1, PCI\VEN_8086&DEV_2E03
%iEGLQ4G0% = iEGL0, PCI\VEN_8086&DEV_2E12
%iEGLQ4G1% = iEGL1, PCI\VEN_8086&DEV_2E13
%iEGLG4G0% = iEGL0, PCI\VEN_8086&DEV_2E22
%iEGLG4G1% = iEGL1, PCI\VEN_8086&DEV_2E23
%iEGLGVG0% = iEGL0, PCI\VEN_8086&DEV_2E32
%iEGLGVG1% = iEGL1, PCI\VEN_8086&DEV_2E33
%iEGLGB0% = iEGL0, PCI\VEN_8086&DEV_2E42
%iEGLGB1% = iEGL1, PCI\VEN_8086&DEV_2E43
%iEGLGBU0% = iEGL0, PCI\VEN_8086&DEV_2E92
%iEGLGBU1% = iEGL1, PCI\VEN_8086&DEV_2E93
%iILKGM0% = iILKM0, PCI\VEN_8086&DEV_0046
%iILKG0% = iILKD0, PCI\VEN_8086&DEV_0042


5.Если нашли останавливаем поиск и берем секцию из которой ставится драйвер
например
%iILKG0% = iILKD0, PCI\VEN_8086&DEV_0042
Его секция iILKD0.

6.дальше ищем

[iILKD0]
DelFiles=CUI.DelFiles
CopyFiles=ialm.Miniport, ialm.Display, Copp.Copy, MedKrnG575.Copy, CUI.Copy,Resource.Copy,CUISDK.Copy , OpenGL.Copy.Gen4
AddReg = CUI.AddReg , OpenGL.AddReg.Gen4, CUISDK.AddReg
DelReg = CUI.DelReg , OpenGL.DelReg, CUISDK.DelReg

Выдираем оттуда значения CopyFiles;

7.Парсим секции на предмет нахождения файла;
ialm.Miniport, ialm.Display,
Copp.Copy, MedKrnG575.Copy,
CUI.Copy,Resource.Copy,
CUISDK.Copy , OpenGL.Copy.Gen4

8. Также не забываем о CoInstallers, находим секцию iILKD0.CoInstallers;
[iILKD0.CoInstallers]
AddReg = CoInst.AddReg
CopyFiles = CoInst.CopyFiles
Выдираем отуда значение параметра CopyFiles;

9. Ищем секцию CoInst.CopyFiles.

[CoInst.CopyFiles]
igfxCoIn_v5179.dll,igxpco32.dll,,0x00000010

Парсим ее. ВСЕ Бекап сделан.

quarq
15-03-2012, 15:45
правда есть еще 1 вариантец ...
собранные файлы могут лежать в разных подпапках в каторые при установке драйвера заглядывает система и они четко прописаны к примеру



[SourceDisksNames.x86]
1 = %DiskId%,,,.\B129978

[SourceDisksNames.ia64]
1 = %DiskID%,,,.\B129978

[SourceDisksFiles]
ati2cqag.dll=1
ati2dvag.dll=1
ati2edxx.dll=1
ati2erec.dll=1
ati2evxx.dll=1
ati2evxx.exe=1
ati2mdxx.exe=1
ati2mtag.sys=1
ati3duag.dll=1
atiadlxx.dll=1
atiapfxx.blb=1
atiapfxx.exe=1
atibtmon.exe=1
aticalcl.dll=1
aticaldd.dll=1
aticalrt.dll=1
atiddc.dll=1
atidemgx.dll=1
atiicdxx.dat=1
atiiiexx.dll=1
atikvmag.dll=1
atimpc32.dll=1
atiodcli.exe=1
atiode.exe=1
atiogl.xml=1
atioglxx.dll=1
atiok3x2.dll=1
atipdlxx.dll=1
atitvo32.dll=1
ativcoxx.dll=1
ativva5x.dat=1
ativva6x.dat=1
ativvamv.dll=1
ativvaxx.cap=1
ativvaxx.dll=1
oemdspif.dll=1

а также есть еще и вторая проблема
часть файлов (в основном библиотек и маркеров ) "зажаты" в CAB архивы при установке которых происходит их распаковка выглядет это так :
oemdspif.dl_ => oemdspif.dll
после бекапа и последующей установки таких драйверов срывается электронная подпись (размер и контрольная сумма вбита в каталог безопасности ) и кроме того для видео драйверов от AMD на моделях 4ххх и выше драйвера как правило не ставятся из за распаковки CAB для более старых моделей проблем не обнаруживалось

Lexua
15-03-2012, 23:24
[CoInst.CopyFiles] ..вот тут происходит переименование файла, в следствие чего без парсинга это секции не обойтись !!
igfxCoIn_v5179.dll,igxpco32.dll,,0x00000010

[Resource.Copy]
igfxrara.lrc ; Arabic language resource file
igfxrchs.lrc ; Simplified Chinese language resource file »

Обойтись можно, ибо в данном случае я обхожусь, хотя парсить ее может и стоит. Единственный недостаток - это лишний файл в папке - igfxCoIn_v5179.dll (естественно речь о конкретном примере) Все файлы перечислены в секции SourceDiskFiles

Алгоритм безусловно достоин внимания, но начинать нужно с секции [Version] параметр CatalogFile. Совсем не лишнее будет учет параметров Include и Needs, встречающихся в стартовых секциях. А вообще-то нужно пересмотреть не один десяток inf-файлов, и не только от Intel.(У интел они слишком правильные) Найдете много интересного и лишний раз убедитесь, что стандарты соблюдаются далеко не всеми производителями драйверов. ;) Да и SourceDisksNames имеет не последнюю роль - пути сохранения файлов...

sLiDeR-X
16-03-2012, 08:29
SOLON7, уважаю твой труд.
Но есть одна просьба: может стоит сначала зафинальить то, что сейчас есть по установке драйверпаков, а потом уже заниматься добавлением бекапа и прочего?
На данный момент есть много недочетов в версии, выложенной в шапке.
С уважением.

SOLON7
16-03-2012, 13:21
Slider-X

Каких именно пунктов не хватает ,какие недочеты ??

1.Мультиязычность не буду пока делать, слишком сложно, придется менять среду на DELPHI XE ( и еще визуальные компоненты ).
2.Установка не подписанных драйверов. (Будет сделано, сейчас думаю над этим).
3. Синтаксиксические недочеты не существенны.

ЧТО ЕЩЕ , пишите подробно, не в приемной телепата находимся

romeo91
16-03-2012, 13:42
1.Мультиязычность не буду пока делать, слишком сложно, придется менять среду на DELPHI XE ( и еще визуальные компоненты ). »А для чего среду менять и компоненты. Достаточно менять Captıon компонентов

SOLON7
16-03-2012, 16:43
romeo91, VCL delphi 7 не поддерживает Unicode. у него только АНСИ.
а мульти-язычность делать с АНСИ немного абсурдно.... тут уже надо действительно использовать всю Unicod'ную среду. Тем более не факт что те компоненты которые я использую тоже поддерживают юникод.
На платформе delphi 7 я сижу с момента ее выпуска, но требования повышаются и соответственно для дальнейшего развития необходимо поддержка юникода как такового.
для Unicode используются 2 байта для хранения символа. тогда как для АНСИ всего 1.

SOLON7
19-03-2012, 22:19
Прошу сначала дочитать первый пост. Прежде чем голосовать.

Привет уважаемые форумчане.
Хотелось бы провести голосование.
На предмет того использует кто либо ос 2000 как серверный вариант или рабочуюю станцию..

С усложнением проекты связано то что многие фичи и функции были добавлены в XP и выше ос.
А win2000 как была и осталась ненавороченной.
Например групировка Драйверпаков не работает коректно на 2000 винде.
И не работает много недокументированных функции.
Так как я перешел с 98 сразу на XP. особо не использовал 2000 как рабочую так и серверный вариант.

Оставить ли поддержку 2000 винды в DriverX.

tyt
19-03-2012, 23:21
Оставить ли поддержку 2000 винды в DriverX. »
Думаю не нужно

romeo91
22-03-2012, 07:34
Каких именно пунктов не хватает ,какие недочеты ?? »
1. Предусмотреть изменение размеров формы при работе в разрешении 640-480 актуально если дрова на видео не встали. Например - минимальная ширина окна, разворот на полный экран по умолчанию, и правка ширины таблицы. Может еще что-то упустил
2. Ну и то, что уже говорили, предусмотреть если ни многоязычность, то хотя бы корректную работу программу например на английской винде. Для этого юникод не требуется

Оставить ли поддержку 2000 винды в DriverX. »
Сичтаю что оставить нужно, на моей практике еще очень много встречается систем 2000, особенно серверных. А рабочие станции 2000 держат иногда, из за неподдержки специализированным софтом более новых версий операционок

SOLON7
22-03-2012, 13:08
то хотя бы корректную работу программу например на английской винде. Для этого юникод не требуется »
конструктивно...

TERMINAL
22-03-2012, 15:09
SOLON7, На заметку-хочу сказать, что был у меня комп на свежеустановленной ХР и Ваша оболочка нашла недостающий драйвер на сетевую плату от NVidia, но после установки система резко ребутнулась (как будто на ресет нажал), после загрузки-драйвер так и не установился, выбрал другую оболочку с теми же базами драйверпаков и установка прошла на ура без всяких перезагрузок... Предоставить сведения о сетевой плате немогу, так как компа этого у меня уже нет. Версия была от последнего релиза SamLab.

hobbit25
22-03-2012, 17:47
SOLON7, а будет ли поправлено http://forum.oszone.net/post-1859044-431.html

SOLON7
23-03-2012, 13:18
TODO LIST
3.Из-за багов с меню. Удалю компонент красивой отрисовки меню.
5.Исправление бага http://forum.oszone.net/attachment.php?attachmentid=77339&d=1329117512

1.Добавить возможность установки неподписанных драйверов (нажатие Да на всплывающем окне, поддерживатся будут не все ОС, в виду сложности реализации). для Windows7 RUS уже сделано

2.Переход на Virtualtreeview. (скорость и кошерность компонентов списка возрастет).
4.Мультиязычность Англ и рус, Еще думаю над тем переходить ли на DELPHI XE.
6. Нужно еще пару DELPHI программистов которые смогут помочь в дальнейшем развитии проекта. (так как в виду сложности проекта без каких либо дотаций не вижу смысла продолжать проект)

Beckmanos
29-03-2012, 16:54
Хорошая сборка, очень быстро грузится. Спасибо автору.
Есть пара вопросов по сборке, возможно ли добавление своих драйвер паков, возможно ли добавление своих отсутствующих драйверов в этой сборке. Если такое возможно как эти паки индексировать при помощи вашей системы.

SOLON7
29-03-2012, 18:57
Хорошая сборка, очень быстро грузится. Спасибо автору.
Есть пара вопросов по сборке, возможно ли добавление своих драйвер паков, возможно ли добавление своих отсутствующих драйверов в этой сборке. Если такое возможно как эти паки индексировать при помощи вашей системы. »

Конечно качаем нужный пак и ложим в папку DRV.
Паки качаем у Сема или Кварка...

Beckmanos
30-03-2012, 17:31
Паки качаем у Сема или Кварка В принципе я на форуме недавно и ещё не в курсе кто такие Сема или Кварк , есть ли на них прямые ссылки. Заранее спасибо за ответ.

SamLab
30-03-2012, 17:32
При установке дров развернул на полный экран и названия еще не установленных драйверов обрезались
http://savepic.net/2667436.png

сделал обычное окно и опять развернул на полный экран и теперь обрезались уже все названия
http://savepic.net/2662316.png

Windows 7 x64 SP1

SOLON7
30-03-2012, 18:47
Этот баг давно присутсвует это иза того что сам отрисовываю текст.
Когда переду на virtualtreeviev тогда будет НОРМ. и кошернее и быстрее...

samsobi
30-03-2012, 21:06
Сема или Кварк »
Они здесь есть :) : Сема=Samlab, а Кварк=quarq. Оба уважаемые авторы драйверпаков, так что смотри и пользуйся с благодарностью.




© OSzone.net 2001-2012