Что изменилось в требованиях к подписи драйверов для Windows 8?

У меня есть сквозной промежуточный драйвер NDIS, состоящий из двух файлов .inf (одного стандартного и одного miniport) и файл .sys. Из-за требований к подписи драйвера Windows 7 мне пришлось получить сертификат для подписи кода и подписать файл .sys, чтобы драйвер мог быть установлен в 64-разрядной системе. Это прекрасно работает, и у меня много успешных установок Windows 7.

Однако тот же установщик не работает в Windows 8 Consumer Preview (64-разрядная версия). Если я загружаюсь с отключенным принудительным применением подписи Windows, он устанавливается правильно, так что это определенно проблема с подписью. Какие новые требования были добавлены между Windows 7 и Windows 8, которым я должен следовать, чтобы установить драйвер?


person jeffm    schedule 09.03.2012    source источник
comment
FWIW: Раньше я модифицировал INF-файлы моего графического драйвера, чтобы они работали с моей системой. (Версии, которые работают из коробки, получены от OEM и, следовательно, старше.) Он отлично работал в Windows XP и Windows 7, как 32-разрядных, так и 64-разрядных, но 64-разрядная версия Windows 8 говорит мне, что я могу' не могу установить его из-за подделки, хотя я отключил обязательное использование подписи. :( Я понятия не имею, что они сделали, но это чертовски раздражает...   -  person user541686    schedule 10.03.2012
comment
FWIW: мне пришлось создать файл .cat для моего .inf, а затем проверить подпись файла .cat, чтобы установить его в Windows 8 Customer Preview X64. Это наводит меня на мысль, что единственный способ развернуть его для выпуска — это сертификат подписи кода от центра сертификации. Этот INF-файл используется для установки устройства USB CDC, использующего драйвер Microsoft usbser.sys.   -  person Louis Davis    schedule 11.03.2012
comment
Есть ли официальное сообщение от Microsoft о том, нужно ли подписывать все INF-файлы в финальной версии Windows 8? Прежде чем я возьмусь за подписание всех наших драйверов, я хотел бы знать.   -  person David Grayson    schedule 23.05.2012


Ответы (2)


Восстановите файлы cat, чтобы они соответствовали требованиям к подписи для новой ОС Windows.

Например, в моем скрипте сборки мне пришлось добавить 8_X86,8_X64 к моей команде inf2cat:

inf2cat /driver:"%CD%" /os:XP_X86,XP_X64,Vista_X86,Vista_X64,7_X86,7_X64,8_X86,8_X64

Для Windows 8.1 вам понадобится inf2cat, включенный в комплект драйверов Windows (WDK) 8.1, и в зависимости от ваших целей добавьте 6_3_X64, 6_3_X86 или 6_3_ARM в /os:WindowsVersionList.

Ссылка, Inf2Cat< /а>

person Roger Stewart    schedule 09.03.2012

У меня такая же проблема. Я использую makecat для создания файла .cat и никогда не включал «‹HASH›» ​​в начале строк файла .cdf, в которых перечислены имена файлов. Это работало с Windows 7, но не с Windows 8.

См. веб-сайт makecat здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx?ppud=4

У меня был такой файл .cdf:

[CatalogHeader]
Name=xxx.cat
[CatalogFiles]
xxx.sys=xxx.sys

Это работало с Windows 7, но не с Windows 8.

Следующее работает и с Windows 8, а также дает более приятный диалог при установке даже в Windows 7:

[CatalogHeader]
Name=xxx.cat
[CatalogFiles]
<hash>xxx.sys=xxx.sys

Чтобы было понятно, нужно добавить текст «‹hash›» (без кавычек). Это не заполнитель для чего-либо, а действительно буквальный текст. makecat позже заменит его хешем файла в файле .cat.

Чтобы было еще понятнее, «xxx» нужно заменить, конечно же, на собственные имена вашего .cat-файла и драйвера. :)

person cxxl    schedule 09.03.2012
comment
А что такое hash в твоей сдаче? - person Eugene Mayevski 'Callback; 10.03.2012
comment
Это обычный текст ‹hash› (без кавычек). Это не заполнитель для anthing, это тоже было моим заблуждением. - person cxxl; 10.03.2012