Amélioration des performances de démarrage du système
L’une des fonctionnalités que les utilisateurs d’ordinateurs demandent le plus fréquemment est le temps de démarrage rapide à partir des états de mise hors tension, de veille et de mise en veille prolongée. Pour réduire le temps de démarrage, Windows utilise un certain nombre de techniques, notamment :
Supprimez de la liste des opérations de démarrage, des processus et des services qui peuvent être différés jusqu’à la fin du démarrage.
Prééchez les pages de mémoire en fonction du modèle de demandes de chargement de ces pages dans les start-ups système précédentes.
Chevauchez l’initialisation de l’appareil avec les opérations d’E/S de disque requises pour charger le système d’exploitation.
Activez l’initialisation de l’appareil en parallèle au lieu de l’initialisation séquentielle.
Un pilote en mode noyau doit effectuer les étapes suivantes pour améliorer les performances du processus de démarrage :
Lorsqu’un ordinateur démarre à partir d’un état de mise hors tension (démarrage à froid), le pilote de périphérique doit uniquement faire ce qui est nécessaire pour initialiser l’appareil et différer toutes les autres opérations de l’appareil jusqu’à ce que le démarrage soit terminé. Limitez le code d’initialisation de votre pilote aux opérations nécessaires pour rendre l’appareil prêt à être utilisé.
Lorsqu’un ordinateur démarre à partir de l’état de veille ou de mise en veille prolongée (démarrage à chaud), un pilote qui doit être initialisé avant la fin du démarrage doit utiliser des threads de travail à haute priorité et des éléments de travail de file d’attente critiques pour décharger toutes les petites tâches dont il a besoin. Dans le cas contraire, le thread de pilote risque d’être privé de temps processeur par des threads non liés, et le démarrage sera retardé.
Lors d’un démarrage à chaud à partir de la mise en veille ou de la mise en veille prolongée, la routine DPC d’un pilote ou le code d’initialisation qui s’exécute à DISPATCH_LEVEL, doit éviter de longs temps d’exécution qui empêchent l’exécution d’autres pilotes. Pour plus d’informations, consultez Partage des ressources du processeur au démarrage à partir d’un état Low-Power.
Lors d’un démarrage à chaud à partir de la mise en veille ou de la mise en veille prolongée, un pilote de périphérique fonctionnel doit effectuer immédiatement un IRP de set-power S0, puis demander un IRP D0 set-power. Si votre pilote termine rapidement l’IRP set-power S0, le système d’exploitation peut terminer le démarrage pendant que votre pilote réinitialise l’appareil en tant que tâche en arrière-plan. Pour plus d’informations, consultez Démarrage rapide à partir d’un état Low-Power.
Un pilote de périphérique ne doit pas tenir un verrou de rotation pendant plus d’une courte période, en particulier pendant un démarrage à froid à partir d’un état de mise hors tension. Sinon, d’autres initialisations d’appareil ne peuvent pas se produire en parallèle.
Cette section comprend les rubriques suivantes :
Partage des ressources du processeur au démarrage à partir d’un état Low-Power