Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Режимы работы Vistax64: Disable Driver Signature..,Test mode, проверка драйвера...
|
|||
|---|---|---|---|
|
#18+
Небольшое введение. Так как моя прога использует так сказать "неподписанный драйвер", то на висте/2008 x64 у нее возникают известные проблемы с установкой/работой этого драйвера. Поковырявшись с литературой, я понял что есть 3 способа решения: 1) При каждой загрузке жать F8 и выбирать "Disable Driver Signature Enforcement", при этом никакая вообще подпись не требуется. 2) Перевести систему в "Test Mode" дав команду Код: plaintext 3) Покупается сертификат и драйвер становится good. Здесь замечу лично я покупать ничего не собираюсь, но теоретически user сам может заплатить бабки и подписать мой драйвер "чисто для себя", если уж он такой правильный user. P.S. Существует также 4-й метод, который =(1) но без необходимости жать F8, но судя по описаниям на обновленных вистах это не работает, поэтому как вариант не рассматривается. Естественно такая ситуация дел вносит некоторый бардак, и если одно из 3-х условий не выполнено то программа будет глючить, устанавливать полуфабрикаты, завешивать систему и т.п. Передо мной стоит задача реализовать механизм проверки и механизм подталкивания usera к правильным действиям (readme, help это все понятно, но как правило люди этого этого не делают). Т.е. надо программно узнать: 1) Является ли файл somedriver.sys "хорошим драйвером с хорошей подписью"? да/нет 2) Находится ли система в режиме "Disable Driver Signature Enforcement"? да/нет 3) Находится ли система в режиме "Test Mode"? да/нет Возможно ли и в какие API копать? В случае если удастся понять ответы на 1-2-3 алгоритм будет такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2009, 00:03 |
|
||
|
Режимы работы Vistax64: Disable Driver Signature..,Test mode, проверка драйвера...
|
|||
|---|---|---|---|
|
#18+
М.б Boot Configuration Data WMI Provider ?? http://msdn.microsoft.com/en-us/library/bb986746(VS.85).aspx Но очень все там запутано пока для понимания и нет уверенности что это то... http://msdn.microsoft.com/en-us/library/aa362670(VS.85).aspx BcdOSLoaderElementTypes Enumeration BcdOSLoaderInteger_DriverLoadFailurePolicy = 0x250000c1 ??? М.б. это? По идее все что может это bcd может и утилита bcdedit.exe Если запустить ее без параметров она выводит тек. статус, напр. TESTSIGNING=ON, но это я так понимаю стартовые параметры -конфиг.., а нужны текущие Т.е. не как должно системе загружаться, а как она загружена в текущий момент... Нашел еще вот это: GetSystemMetrics Function SM_CLEANBOOT=67 The value that specifies how the system is started: 0 Normal boot 1 Fail-safe boot 2 Fail-safe with network boot http://msdn.microsoft.com/en-us/library/ms724385(VS.85).aspx Даже с примером для VB http://support.microsoft.com/kb/291664 интересно,казалось близко да не совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2009, 16:01 |
|
||
|
Режимы работы Vistax64: Disable Driver Signature..,Test mode, проверка драйвера...
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Т.е. надо программно узнать: ... 2) Находится ли система в режиме "Disable Driver Signature Enforcement"? да/нет 3) Находится ли система в режиме "Test Mode"? да/нет Удивительно, но я нашел ответ на эти вопросы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Но я споткнулся на ровном месте: Код: plaintext 1. система x64, понятно что я запускаю из под x86 если vb6. понятно что запускаю от Администратора При запуске через Shell проблем с запуском x64-приложения обычно не возникает Кстати bcdedit возможно x86 Есть определенная путаница с System32/SysWOW64, но это тоже не проблема Есть 2 функции и они вычислят оба пути: Код: plaintext 1. 2. 3. Но здесь вот какая ерунда. Если я смотрю в проводнике, то bcdedit.exe якобы находится в System32, на самом деле ее там нет ни в System32 ни в SysWOW64 Элементарный поиск через far показывает что bcdedit реально находится в windows\WINSXS\черт_знает_что Но в WINSXS очень много всего, т.е. программный поиск быстрым не будет Ну т.е. 32-битное приложение путь к bcdedit не видит. 64-битная cmd видит: Пытался также Код: plaintext 1. 2. Обе команды запускают слепую 32-bit cmd. Т.е. вопрос теперь: как из 32bit командной строки (приложения) вызвать bcdedit, ну пусть в другом окне??? Как вариант конечно можно попробовать скомпилировать простенькое 64-битное "приложение-переходник", которое надеюсь будет "видеть", но хотелось бы без "наворотов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2010, 17:42 |
|
||
|
Режимы работы Vistax64: Disable Driver Signature..,Test mode, проверка драйвера...
|
|||
|---|---|---|---|
|
#18+
Как вариант можно 1) скопировать system32\cmd.exe в скажем AppPath\cmd64.exe 2) Тогда команда Shell ("AppPath\cmd64.exe /c bcdedit.exe -set ..."), ... сработает как хотелось, типа кривоватое но решение.... М.б. существует что-то вместо cmd.exe? М.б. какая API? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2010, 18:31 |
|
||
|
Режимы работы Vistax64: Disable Driver Signature..,Test mode, проверка драйвера...
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Как вариант можно 1) скопировать system32\cmd.exe в скажем AppPath\cmd64.exe Не вариант. Это только если ручками. а 32-битное App слепое, x64 винды его дурят и направляют в syswow64, где оно фиг чего сделает. Но способ таки есть и найден был: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Свободную первую букву для диска найти не проблема. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 02:16 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=60&tid=2159500]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 354ms |

| 0 / 0 |
