Повышение производительности запуска системы
Одной из функций, которые пользователи компьютеров чаще всего запрашивают, является быстрое время запуска из состояний выключения питания, ожидания и гибернации. Чтобы сократить время запуска, Windows использует ряд методов, в том числе следующие:
Удалите из списка операций запуска, процессов и служб, которые можно отложить до завершения запуска.
Предварительная выборка страниц памяти в соответствии с шаблоном запросов на загрузку этих страниц в предыдущих запусках системы.
Перекрывает инициализацию устройства операциями ввода-вывода на диске, необходимыми для загрузки операционной системы.
Разрешить инициализацию устройств выполнять параллельно, а не последовательно.
Драйвер в режиме ядра должен выполнить следующие действия, чтобы повысить производительность процесса запуска.
Когда компьютер запускается из состояния выключения питания (холодный запуск), драйвер устройства должен выполнять только то, что требуется для инициализации устройства, и откладывать все остальные операции устройства до завершения запуска. Ограничьте код инициализации драйвера операциями, необходимыми для подготовки устройства к использованию.
Когда компьютер запускается из режима ожидания или гибернации (теплый запуск), драйвер, который должен быть инициализирован перед завершением запуска, должен использовать высокоприоритетные рабочие потоки и критические рабочие элементы очереди для разгрузки любых небольших задач, необходимых ему. В противном случае поток драйвера может быть нехваткой времени процессора несвязанными потоками, и запуск будет отложен.
Во время горячего запуска из режима ожидания или гибернации подпрограмма DPC драйвера или код инициализации, который выполняется в DISPATCH_LEVEL, должны избегать длительного времени выполнения, которое блокирует работу других драйверов. Дополнительные сведения см. в разделе Совместное использование ресурсов процессора во время запуска из состояния Low-Power.
Во время горячего запуска из режима ожидания или гибернации драйвер функционального устройства должен немедленно выполнить IRP С0 set-power, а затем запросить D0 set-power IRP. Если драйвер быстро завершает S0 set-power IRP, операционная система может завершить запуск, пока драйвер повторно инициализирует устройство в качестве фоновой задачи. Дополнительные сведения см. в разделе Быстрый запуск из состояния Low-Power.
Драйвер устройства не должен удерживать спин-блокировку более короткого времени, особенно во время холодного запуска из состояния выключения питания. В противном случае другие инициализации устройств не могут выполняться параллельно.
Этот раздел содержит следующие подразделы:
Совместное использование ресурсов процессора во время запуска из состояния Low-Power