Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 593
Благодарности: 222

Профиль | Отправить PM | Цитировать


Цитата evgen_b:
все-таки с ошибками индексируется. »
Конечно, с ошибками. Над индексатором давно никто не работал, и те ошибки, что ты нашел являются относительно малозначительными по сравнению с известными мне проблемами.

Цитата evgen_b:
в нем есть inf-файл вместе с каталог-файлом: »
DPS все равно неправильно ищет cat файл. Нужно искать тот файл, который указан в inf файле, а не то как это делается в DPS.

SDI делает это правильно и, кроме того, извлекает из cat файлов информацию о том для какой ОС рассчитан драйвер.
Цитата evgen_b:
В общем продолжаю ковырять dev_parser.vbs, сам хочу немножко разобраться, лишь бы голову себе не сломать. Пока удалось вернуть в работу option explicit и обернуть вычисление индексов в класс (без фанатизма), чтобы хоть немножко структурировать код. »
Дорабатывать индексацию здесь довольно сложно, так как она сделана на регулярных выражениях, а они и так очень сложны для восприятия.
Код: Выделить весь код
r_identS = "([^; \t\r\n][^;\t\r\n]*[^; \t\r\n])"
r_str = "(?:""([^\r\n""]*)""|([^\r\n;]*))"
r_strORind = "(?:%([^%\r\n]+)%|""([^\r\n]+)""|([^;=\r\n]+))"
regex_mandef  = r_beg & "[^;\r\n=]*=[ \t]*([^;\r\n]*)"
regex_devdef  = r_beg & r_strORind & "[^=\r\n]*=[^\r\n,]*" & "([^;\r\n]*)"
regex_sectnames = "(?:,?[ \t]*""([^""\r\n]+)""|,?[ \t]*([^,\t\r\n;]+[^,\t\r\n ;]))"
Исправление проблем в них сделает их еще длиннее, сложнее и гораздо медленнее.
Я не думаю, что это стоит затраченных усилий. Проще все переписать с нуля, как я уже сделал с SDI.

В SDI исходный код легко читается и индексация длится всего 19 секунд, в то время как у DPS почти 5 минут. Причем сам формат у DPS уже давно устарел.

Вот пример того как выглядят индексы у SDI. Обрати внимание на пустую секцию [nvidia_sys.ntamd64.6.1], которая говорит о том что этот драйвер не подходит для Семерки и выше. В индексах у DPS информации о пустых секциях нет.

читать дальше »

Код: Выделить весь код
  nVidia\6x64\STRICT\SMBUS_4.7.4\nfsmb64.inf (2429 bytes)
    date                        29/7/2009
    version                     4.7.4.0
    classguid                   {4D36E97D-E325-11CE-BFC1-08002BE10318}
    class                       System
    provider                    NVIDIA
    catalogfile                 nfsmb64.cat
      2:5.1,2:5.2,2:6.0
      {NVIDIA}
        [nvidia_sys]
        [nvidia_sys.ntamd64.5.1]
          PCI\VEN_10DE&DEV_0264                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_0368                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_03EB                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_07D8                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_0752                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_0AA2                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

        [nvidia_sys.ntamd64.6.0]
          PCI\VEN_10DE&DEV_0264                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_0368                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_03EB                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_07D8                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_0752                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

          PCI\VEN_10DE&DEV_0AA2                             NO_DRV                      NVIDIA nForce System Management
          feature:FF                                        no_drv

        [nvidia_sys.ntamd64.6.1]
  Decors:
    plain          0
    ntamd64.5.1    6
    ntamd64.6.0    6
    ntamd64.6.1    0

Цитата evgen_b:
Осталось полноценную командную строку, обработку ошибок тоже пока совсем убрал, и может счетчики производительности переписать. Хочу полноценную консольную версию с командной строкой. Доделаю - поделюсь, может кому пригодится. »
У SDI есть консольный режим.

Я бы даже не рекомендовал запускать установку драйверов в DPS в автоматическом режиме, так на одно устройство предлагается сразу несколько драйверов(со звуком такое чаще всего происходит) и DPS попытается поставить всех их сразу. Также зачастую устанавливаются драйверы татчпадов на десктопы.

-------
Автор программы Snappy Driver Installer


Отправлено: 09:50, 25-06-2014 | #1563