Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
код страницы — это код, который можно записать в файл разбиения на страницы компьютера, если код не используется. Вы можете сделать часть кода вашего драйвера страничным, чтобы уменьшить его образ загрузки и время начальной загрузки, а также сократить объем кода драйвера, использующего ограниченный неперестраничиваемый пул памяти компьютера.
Чтобы помочь вам определить, подходит ли странично размещаемый код или данные для вашего драйвера, выполните следующие шаги:
Определите страничные разделы в вашем драйвере.
Разделы с возможностью постраничной загрузки не загружаются в память, пока они не потребуются. Для получения информации о том, как создавать поддающиеся страницированию разделы в драйвере, см. Создание драйверов с возможностью страницировки.
Убедитесь, что код драйвера, использующего страничную память, не препятствует быстрому пробуждению компьютера из состояния пониженного энергопотребления.
Все функции обратного вызова объекта устройства, предоставляемые драйверами, вызываются на уровне IRQL = PASSIVE_LEVEL, что позволяет сделать их код страничным (как описано в возможности страниц драйверов).
Однако нельзя делать код функции обратного вызова страничным, если фреймворк вызывает функцию, когда устройство выходит из состояния низкого энергопотребления и возвращается в рабочее состояние (D0).
Если такой код доступен на страницы, код может быть записан в файл разбиения на страницы до того, как компьютер войдет в состояние спящего режима. Таким образом, компьютер будет медленнее пробуждаться, так как код не может быть загружен (и, следовательно, устройство не может стать полностью рабочим), пока не будет восстановлено питание диска подкачки.
Таким образом, функции обратного вызова, перечисленные в разделе Возврат устройства в рабочее состояние, не должны быть выгружаемыми из памяти.
Определите, требуется ли вашему драйверу доступ к пейджируемым данным за пределами драйвера, таким как файлы, реестр или страничный пул, при изменениях режима питания.
Сведения о том, как включить и отключить возможность драйвера получать доступ к страничным данным во время переходов питания, см. в WdfDeviceInitSetPowerPageable и WdfDeviceInitSetPowerNotPageable.
Дополнительные сведения о том, как определить, находится ли драйвер в неизменяемом состоянии, см. в WdfDevStateIsNP.