Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per impostazione predefinita, le versioni a 64 bit di Windows Vista e versioni successive di Windows caricheranno un driver in modalità kernel solo se il kernel può verificare la firma del driver. Tuttavia, questo comportamento predefinito può essere disabilitato durante lo sviluppo iniziale dei driver e per i test non automatizzati. Gli sviluppatori possono usare uno dei meccanismi seguenti per disabilitare temporaneamente l'imposizione in fase di caricamento di una firma del driver valida. Tuttavia, per automatizzare completamente i test di un driver installato da Plug and Play (PnP), il file di catalogo del driver deve essere firmato. La firma del driver è necessaria perché Windows Vista e versioni successive di Windows visualizzano una finestra di dialogo di firma del driver per i driver non firmati che richiedono a un amministratore di sistema di autorizzare l'installazione del driver, impedendo potenzialmente a qualsiasi utente senza i privilegi necessari di installare il driver e di usare il dispositivo. Questo comportamento di installazione del driver PnP non può essere disabilitato in Windows Vista e versioni successive di Windows.
Usa l'Advanced Boot Option F8
Windows Vista e versioni successive di Windows supportano l'opzione di avvio avanzata F8 - "Disabilita imposizione firma dei driver" - che disabilita l'imposizione della firma al momento del caricamento per un driver in modalità kernel solo per la sessione di sistema corrente. Questa impostazione non viene mantenuta tra i riavvii del sistema.
Collegare un debugger del kernel per disabilitare la verifica della firma
Il collegamento di un debugger del kernel attivo a un computer di sviluppo o test disabilita l'imposizione della firma in fase di caricamento per i driver in modalità kernel. Per usare questa configurazione di debug, collegare un computer di debug a un computer di sviluppo o test e abilitare il debug del kernel nel computer di sviluppo o test eseguendo il comando seguente:
bcdedit -debug on
Per usare BCDEdit, l'utente deve essere membro del gruppo Administrators nel sistema ed eseguire il comando da un prompt dei comandi con privilegi elevati. Per aprire una finestra del prompt dei comandi con privilegi elevati, creare un collegamento desktop per Cmd.exe, selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) sul collegamento e selezionare Esegui come amministratore.
Applicazione della verifica della firma in modalità kernel in modalità di debug del kernel
Tuttavia, esistono situazioni in cui uno sviluppatore potrebbe dover disporre di un debugger del kernel collegato, ma deve anche mantenere l'imposizione della firma in fase di caricamento. Ad esempio, quando uno stack di driver ha un driver non firmato (ad esempio un driver di filtro) che non riesce a caricarsi può invalidare l'intero stack. Poiché il collegamento di un debugger consente il caricamento del driver non firmato, il problema sembra sparire non appena il debugger è collegato. Il debug di questo tipo di problema può essere difficile.
Per facilitare il debug di questi problemi, i criteri di firma del codice in modalità kernel supportano il valore del Registro di sistema seguente:
HKLM\SYSTEM\CurrentControlSet\Control\CI\DebugFlags
Questo valore del Registro di sistema è di tipo REG_DWORD e può essere assegnato il valore basato su un OR bit per bit di uno o più dei flag seguenti:
0x00000001
Questo valore flag configura il kernel per entrare nel debugger se un driver non è firmato. Lo sviluppatore o il tester può quindi scegliere di caricare il driver non firmato immettendo g al prompt del debugger.
0x00000010
Questo valore flag configura il kernel per ignorare la presenza del debugger e per bloccare sempre il caricamento di un driver non firmato.
Se questo valore del Registro di sistema non esiste nel Registro di sistema o ha un valore non basato sui flag descritti in precedenza, il kernel carica sempre un driver in modalità di debug del kernel indipendentemente dal fatto che il driver sia firmato o meno.
Nota Questo valore del Registro di sistema non esiste nel Registro di sistema per impostazione predefinita. È necessario creare il valore per eseguire il debug della convalida della firma in modalità kernel.