Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете сделать весь драйвер или его часть доступным для подкачки. Код разбиения на страницы драйвера может уменьшить размер загружаемого образа драйвера, что позволяет освободить системное пространство для других нужд. Это наиболее удобно для драйверов нерегулярно используемых устройств, таких как модемы и cd-ROM, или для частей драйверов, которые редко называются.
Код драйвера, который выполняет любой из следующих действий, должен быть резидентом памяти. То есть этот код должен находиться либо в разделе без страниц, либо в разделе с страницами, которые заблокированы в памяти во время выполнения кода.
Выполняется на уровне IRQL = DISPATCH_LEVEL или выше.
Получает спин-блокировки.
Вызывает любые подпрограммы поддержки объектов ядра, такие как KeReleaseMutex или KeReleaseSemaphore, в которых параметр Wait имеет значение TRUE. Если вызов ядра происходит при Wait, установленном в TRUE, то возврат происходит с IRQL на DISPATCH_LEVEL.
Код драйвера должен выполняться в IRQL < DISPATCH_LEVEL, если код делает все, что может привести к сбою страницы. Код может вызвать сбой страницы, если он выполняет одно из следующих действий:
Обращается к пулу страниц, который не заблокирован в памяти.
Вызывает страничные подпрограммы.
Обращается к разблокированным буферам пользователей в контексте пользовательского потока.
Как правило, следует сделать раздел на страницу, если общий объем всего кода для страниц (или данных) составляет не менее 4 килобайта (КБ). Каждый раз, когда это возможно, следует изолировать только страницируемый код или данные в отдельный раздел от кода или данных, которые иногда могут быть страницируемыми, но иногда должны быть заблокированы. Например, объединение чисто страничного кода и заблокированного кода по запросу приводит к тому, что больше системного пространства будет заблокировано для объединенного раздела, чем это необходимо. Однако если драйвер имеет менее 4 КБ возможной страницы кода (или данных), этот код (или данные) можно объединить с заблокированным кодом по запросу (или данными) в одном разделе, сохраняя системное пространство.