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