2012-03-09 10 views
14

Ho un passthrough driver intermedio NDIS, costituito da due file .inf (uno standard e uno miniport) e un file .sys. A causa dei requisiti di firma del driver di Windows   7, ho dovuto ottenere un certificato di firma del codice e firmare il file .sys affinché il driver possa essere installato su un sistema a 64 bit. Funziona bene, e ho molte installazioni di Windows   di successo.Cosa è cambiato nei requisiti di firma del driver per Windows 8?

Tuttavia, lo stesso programma di installazione non riesce in Windows 8 Consumer Preview (64-bit). Se avvio con Windows Signature Enforcement disattivato, si installa correttamente, quindi è sicuramente un problema di firma. Quali nuovi requisiti sono stati aggiunti tra Windows 7 & Windows 8 che devo seguire per poter installare il mio driver?

+0

FWIW: ho usato per modificare i file inf dei miei driver grafici per farli funzionare con il mio sistema. (Le versioni che funzionano fuori dalla scatola provengono dall'OEM, e quindi più vecchie.) Funzionava bene su Windows XP e Windows 7, sia a 32 che a 64 bit, ma Windows 8 a 64 bit mi dice che posso ' t installarlo a causa di manomissioni, anche se ho disattivato l'applicazione della firma. :(Non ho idea di cosa abbiano fatto, ma è dannatamente fastidioso ... – Mehrdad

+0

FWIW: ho dovuto creare un file .cat per il mio .inf e poi testare il file .cat per farlo installare su Windows 8 Customer Anteprima X64.Ciò mi porta a credere che l'unico modo per distribuirlo per il rilascio richiederebbe un certificato di firma del codice da un'Autorità di certificazione. Questo .inf viene utilizzato per installare un dispositivo CDC USB che utilizza il driver usbser.sys di Microsoft. –

+0

Se c'è qualche parola ufficiale da Microsoft sul fatto che tutti i file INF debbano essere firmati nella versione finale di Windows 8? Prima di passare la briga di firmare tutti i nostri piloti mi piacerebbe sapere. –

risposta

4

Rigenera i file cat in modo che siano conformi ai requisiti di firma per il nuovo sistema operativo Windows.

Ad esempio, nel mio script di build ho dovuto aggiungere 8_X86,8_X64 al mio inf2cat comando:

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

Per Windows 8.1, sarà necessario il inf2cat incluso nel Windows Driver Kit (WDK) 8.1 e a seconda del/i target/i, aggiungere 6_3_X64, 6_3_X86 o 6_3_ARM a/os: WindowsVersionList.

di riferimento, Inf2Cat

+0

Sono andato via senza un file di gatti, ma ci proverò. – jeffm

+0

Questo ha risolto il problema, sebbene richieda all'utente se desidera installare il driver. Non è l'ideale, ma è molto meglio che non installare. – jeffm

+1

@jeffm: assicurati di firmare anche il file cat. http://msdn.microsoft.com/en-us/library/windows/hardware/ff549830%28v=vs.85%29.aspx –

4

Ho avuto lo stesso problema. Io uso makecat per generare il file .cat e non ho mai incluso "<HASH>" all'inizio delle righe del file .cdf che elencano i nomi dei file. Che ha lavorato con Windows 7, ma non più con Windows 8.

Vedere la makecat sito qui: http://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx?ppud=4

ho avuto un file cdf come questo:

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

Questo ha funzionato con Windows 7, ma non con Windows 8.

le seguenti opere con Windows 8 e, in più dà un dialogo più bello quando si installa, anche sotto Windows 7:

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

Per rendere più chiaro, è necessario aggiungere il testo "<hash>" (senza virgolette). Questo non è un segnaposto per nulla, ma in realtà il testo letterale. makecat lo sostituirà in seguito con l'hash del file nel file .cat.

Per renderlo ancora più chiaro, "xxx" deve essere sostituito con i nomi propri del file .cat e del driver, ovviamente. :)

+1

E qual è l'hash nella tua modifica? –

+0

È il testo semplice "" (senza virgolette). Non è un segnaposto per qualcosa, anche quello era il mio equivoco. – cxxl

Problemi correlati