2012-03-09 10 views
14

Tengo un controlador intermedio NDIS pasante, que consta de dos archivos .inf (un estándar y un minipuerto) y un archivo .sys. Debido a los requisitos de firma de controladores de Windows   7, tuve que obtener un certificado de firma de código y firmar el archivo .sys para que el controlador se instalara en un sistema de 64 bits. Esto funciona bien, y tengo muchas instalaciones exitosas de Windows   7.¿Qué cambió en los requisitos de la firma del controlador para Windows 8?

Sin embargo, el mismo instalador falla en Windows 8 Consumer Preview (64 bits). Si reinicio con Windows Signature Enforcement desactivado, se instala correctamente, por lo que definitivamente es un problema de firma. ¿Qué nuevos requisitos se agregaron entre Windows 7 & Windows 8 que necesito seguir para instalar mi controlador?

+0

FWIW: Solía ​​modificar los archivos .inf de mi controlador de gráficos para que funcionen con mi sistema. (Las versiones que funcionan de fábrica provienen del OEM y, por lo tanto, son más antiguas). Funcionó bien en Windows XP y Windows 7, tanto de 32 bits como de 64 bits, pero Windows 8 de 64 bits me dice que no puedo ". Lo instalo debido a la manipulación, aunque he desactivado la aplicación de la firma. :(No tengo idea de lo que hicieron, pero es bastante molesto ... – Mehrdad

+0

FWIW: Tuve que crear un archivo .cat para mi .inf y luego probar firmar el archivo .cat para que se instalara en Windows 8 Customer Vista previa X64.Eso me lleva a creer que la única forma de implementarlo para su lanzamiento requeriría un certificado de firma de código de una Autoridad de certificación. Este .inf se usa para instalar un dispositivo USB CDC que usa el controlador usbser.sys de Microsoft. –

+0

¿Hay alguna palabra oficial de Microsoft sobre si todos los archivos INF deben firmarse en la versión final de Windows 8? Antes de tomarse la molestia de firmar todos nuestros conductores, me gustaría saber. –

Respuesta

4

Vuelva a generar su (s) archivo (s) cat para que cumplan con los requisitos de firma para el nuevo SO Windows.

Por ejemplo, en mi escritura de la estructura he tenido que añadir 8_X86,8_X64 a mi inf2cat comando:

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

Para Windows 8.1, necesitará el inf2cat incluido en Windows Driver Kit (WDK) 8.1 y según su (s) objetivo (s) agregue 6_3_X64, 6_3_X86, o 6_3_ARM al/os: WindowsVersionList.

de referencia, Inf2Cat

+0

He estado escapando sin un archivo de gato en absoluto, pero voy a intentar esto. – jeffm

+0

Esto resolvió el problema, aunque indica al usuario si desea instalar el controlador. Eso no es ideal, pero es mucho mejor que no instalar. – jeffm

+1

@jeffm: asegúrese de que también firme su archivo cat. http://msdn.microsoft.com/en-us/library/windows/hardware/ff549830%28v=vs.85%29.aspx –

4

que tenía el mismo problema. Yo uso makecat para generar el archivo .cat y nunca incluí el "<HASH>" al comienzo de las líneas del archivo .cdf que enumeran los nombres de los archivos. Eso funcionó con Windows 7, pero ya no con Windows 8.

Ver el sitio web makecat aquí: http://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx?ppud=4

que tenía un archivo .cdf así:

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

Esto funcionó con Windows 7, pero no con Windows 8.

Los siguientes funciona con Windows 8, así, además de que da un diálogo más agradable al instalar, incluso bajo Windows 7:

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

Para que quede claro, debe agregar el texto "<hash>" (sin comillas). Eso no es un marcador de posición para nada, pero realmente es el texto literal. makecat lo reemplazará más tarde con el hash del archivo en el archivo .cat.

Para hacerlo aún más claro, "xxx" tiene que ser reemplazado con los nombres propios de su archivo .cat y su controlador, por supuesto. :)

+1

¿Y qué es 'hash' en su cambio? –

+0

Es el texto sin formato "" (sin comillas). No es un marcador de posición para anthing, ese también fue mi concepto erróneo. – cxxl

Cuestiones relacionadas