Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
По умолчанию компоновщик назначает такие имена, как "text" и ".data" в разделах кода и данных файла образа драйвера. При загрузке драйвера диспетчер ввода-вывода делает эти разделы неpaged. Незакешированный раздел постоянно находится в памяти.
Разработчик драйверов имеет возможность сделать назначенные части страницы драйвера, чтобы Windows могли перемещать эти части в файл разбиения по страницам, если они не используются. Чтобы сделать код или раздел данных доступным для страницы, разработчик драйвера назначает имя, начинающееся с page. Диспетчер ввода-вывода проверяет имена разделов при загрузке драйвера. Если имя раздела начинается с "PAGE", диспетчер ввода-вывода делает раздел доступным для страницы.
Код, который выполняется в IRQL >= DISPATCH_LEVEL должен быть резидентом памяти. То есть этот код должен находиться в неизменяемом сегменте или в сегменте, блокируемом в памяти. Если код, выполняющийся в IRQL >= DISPATCH_LEVEL вызывает ошибку страницы, происходит проверка ошибок. Драйверы могут использовать макрос PAGED_CODE, чтобы убедиться, что пагинируемые функции вызываются только на соответствующих IRQLs.
Если код или раздел данных доступен для страницы, драйвер может заблокировать раздел в памяти, вызвав подпрограмму MmLockPagableCodeSection или MmLockPagableDataSection . Раздел остается заблокированным, пока драйвер не вызовет подпрограмму MmUnlockPagableImageSection , чтобы разблокировать ее. Хотя страничный раздел заблокирован, он ведет себя так же, как и непагинованный раздел.
Сведения о назначении имен разделам кода и данных см. в разделе MmLockPagableCodeSection и MmLockPagableDataSection.
В этом разделе приведены следующие разделы: