Имя пользователя:
Пароль:
 

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

Аватара для Boa Soft

Компьютерный шаман


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

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


Debugger

Цитата:
Значит ли это, что теперь можно будет без проблм установить неподписанный новый драйвер, даже если у Windows есть свой, более старый?
Нет, ранжир драйверов это не меняет. Просто функция, проверяющая текушую политику подписи всегда выдает ignore, не зависимо от состояния защитного хеша и значений реестра. Тупая идея - 'испортить' подпись встроенного драйвера, добавив пару пробелов в его inf.

Другая идея - похакать функцию проверки каталогов, чтобы все файлы считались "подписанными". Будет время - покапаюсь Ida в потрохах
setupapi еще раз.


Тут вот выложил новую версию. Менялся только финиш.


Код: Выделить весь код
Изменения в версии от 6 марта.
1. Исправлена досадная ошибка в процедуре само удаления, которая могла привести в некоторых
   случаях к  удалению лишних файлов в папке, где находился finish.exe.
2. После переосмысления изменена логика работы finish.
3. Изменено поведение при KeepDrivers = 0 и AutoCleanup = 0 - при таком сочетании не происходит сброс
   путей на стандартное %SystemRoot%\inf и удаление исходной папки драйверов.
4. Изменено поведение функции очистки (finish cleanup). При отсутствии presetup.ini происходит удаление
   только служебных файлов. Ни какие папки с драйверами не удаляются.
5. Процедура сброса путей на стандартное %SystemRoot%\inf при KeepDrivers = 0 перенесена в функцию очистки.
6. Добавлены два ключа командной строки finish.
      "ktd" или "k" - принудительный запуск функции сохранения драйверов.
      "panels" или "p" - принудительный запуск функции установки панелей (дополнений) драйверов.
7. Уменьшен размер диалога по вертикали.

Небольшая выдержка из доки:

Код: Выделить весь код
 Более подробно, в деталях логика работы finish следующая:

 При запуске из SetupParam происходит чтение параметров из presetup.ini и занесение в RunOnceEx ключей для
 запуска следующей стадии после перезагрузки.

 Если указан параметр UseRunOnceEx=0 , то выполняются следующие два действия:
  Происходит обработка finish.ini и запуск установки панелей (дополнений) драйверов (при наличии finish.ini).
  Если указан параметр KeepDrivers = 1, то происходит сохранение драйверов в папку и по критериям, определенным в
  finish.ini. Если finish.ini отсутствует, то происходит сохранение всей папки с драйверами в папку по
  умолчанию (%SystemRoot%\OemDrv). Помните, что в этом случае при недостатке места на системном разделе и большом
  обьеме папки с драйверами возможны проблемы.
  Если указан параметр KeepDrivers = 0, то просто ничего не делается.

 Если указан параметр UseRunOnceEx=1 , то два вышеприведенных действия обрабатываются на этапе первой загрузки.

 Эти же действия можно вызвать принудительно запуском finish с соответствующими ключем (panels или ktd).
 При вызове ktd будет принудительно проставлен параметр KeepDrivers = 1, чтобы пути поиска не были сброшены 
 при очистке.

 Также, на этапе первой загрузки по окончанию установки панелей и сохранения драйверов при указанном ключе
 AutoCleanup = 1 происходит процедура очистки - удаляются папки драйверов и всех служебных файлов (в том числе,
 и самого finish.exe).

 Это же действие можно вызвать принудительно запуском finish с соответствующим колючем (cleanup).
  
 Так же на этом этапе производится следующее - если не был указан параметр KeepDrivers = 1, то происходит 
 сброс путей поиска на %SystemRoot%\inf.

По поводу HWID* - нужен finish.ini и FinishDrv.log для анализа ошибок.



-------
Человеческая лень - главная движущая сила технического прогресса.


Отправлено: 02:34, 06-03-2007 | #931