Что изменилось в требованиях подписи драйвера для Windows 8?
У меня есть промежуточный драйвер NDIS, состоящий из двух файлов .inf(один стандартный и один минипорта) и файла .sys, Из-за требований к подписке на драйверы Windows 7 мне пришлось получить сертификат подписи кода и подписать файл .sys, чтобы драйвер мог установить его в 64-разрядную систему. Это отлично работает, и у меня много успешных Windows 7 установок.
Тем не менее, тот же установщик выходит из строя в Windows 8 Consumer Preview (64-разрядный). Если я загружаюсь с Windows Signature Enforcement выключенным, он устанавливается правильно, так что это определенно проблема с подписью. Какие новые требования были добавлены между Windows 7 и Windows 8, которые мне нужно выполнить, чтобы установить мой драйвер?
Ответы
Ответ 1
Восстановите ваши кошачьи файлы, чтобы они соответствовали требованиям подписи для новой ОС Windows.
Например, в моей сборке script мне пришлось добавить 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
Ответ 2
У меня была та же проблема. Я использую 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 и драйвера, конечно.:)