Что изменилось в требованиях к подписи драйверов для Windows 8? - PullRequest
15 голосов
/ 10 марта 2012

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

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

Ответы [ 2 ]

5 голосов
/ 10 марта 2012

Восстановите ваши файлы 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 Driver Kit (WDK) 8.1, и в зависимости от ваших целей добавьте 6_3_X64, 6_3_X86,или 6_3_ARM в /os:WindowsVersionList.

Ссылка, Inf2Cat

4 голосов
/ 10 марта 2012

У меня была такая же проблема.Я использую makecat для генерации .cat-файла, и я никогда не включал «» в начале строки .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

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

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

...