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.
Una delle funzionalità che gli utenti del computer richiedono più frequentemente è tempi di avvio rapidi dagli stati di accensione, standby e ibernazione. Per ridurre il tempo di avvio, Windows usa una serie di tecniche, tra cui:
Rimuovere, dall'elenco di operazioni di avvio, processi e servizi che possono essere posticipati fino al completamento dell'avvio.
Prelettura delle pagine di memoria in base al modello di richieste per caricare queste pagine nelle startup di sistema precedenti.
Sovrapporre l'inizializzazione del dispositivo con le operazioni di I/O del disco necessarie per caricare il sistema operativo.
Abilitare l'inizializzazione del dispositivo da eseguire in parallelo anziché in sequenza.
Un driver in modalità kernel deve eseguire i passaggi seguenti per migliorare le prestazioni del processo di avvio:
Quando un computer viene avviato da uno stato di spegnimento (avvio a freddo), il driver di dispositivo deve eseguire solo ciò che è necessario per inizializzare il dispositivo e rinviare tutte le altre operazioni del dispositivo fino al completamento dell'avvio. Limitare il codice di inizializzazione del driver alle operazioni necessarie per rendere il dispositivo pronto per l'uso.
Quando un computer viene avviato dallo stato di standby o di ibernazione (avvio rapido), un driver che deve essere inizializzato prima che l'avvio sia completato deve usare thread di lavoro ad alta priorità e elementi di lavoro della coda critici per svolgere tutte le piccole attività necessarie. Diversamente, il thread del driver potrebbe essere privato del tempo del processore a causa di thread non correlati, e l'avvio verrà ritardato.
Durante un avvio rapido da standby o ibernazione, la routine DPC di un driver o il codice di inizializzazione che viene eseguito a DISPATCH_LEVEL deve evitare tempi di esecuzione lunghi che bloccano l'esecuzione di altri driver. Per altre informazioni, vedere Condivisione delle risorse del processore durante l'avvio da uno stato di Low-Power.
Durante un avvio a caldo da standby o ibernazione, un driver di dispositivo funzionale deve completare immediatamente un IRP di impostazione potenza S0 e quindi richiedere un IRP di impostazione potenza D0. Se il driver completa tempestivamente l'IRP di alimentazione S0, il sistema operativo può completare l'avvio mentre il driver reinizializza il dispositivo come un compito in background. Per altre informazioni, vedere Avvio rapido da uno stato Low-Power.
Un driver di dispositivo non deve mantenere uno spin lock per più di un breve periodo di tempo, soprattutto durante un avvio a freddo da uno stato di spegnimento. In caso contrario, altre inizializzazioni del dispositivo non possono verificarsi in parallelo.
Questa sezione include gli argomenti seguenti:
Condivisione delle risorse del processore durante l'avvio da uno stato di Low-Power