Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы определить код, выполняющийся на уровне IRQL >= DISPATCH_LEVEL, используйте макрос PAGED_CODE. В режиме отладки этот макрос генерирует сообщение, если код выполняется на уровне IRQL >= DISPATCH_LEVEL. Добавьте макрос в качестве первой инструкции в подпрограмму, чтобы пометить всю подпрограмму как код страницы, как показано в следующем примере:
NTSTATUS
MyDriverXxx(
IN OUT PVOID ParseContext OPTIONAL,
OUT PHANDLE Handle
)
{
NTSTATUS Status;
PAGED_CODE();
.
.
.
}
Чтобы убедиться, что вы делаете это правильно, запустите проверяющего драйвера с включенным параметром Принудительная проверка IRQL. Этот параметр приводит к тому, что система автоматически выгружает в файл подкачки весь код, подлежащий выгрузке, каждый раз, когда драйвер повышает IRQL до уровня DISPATCH_LEVEL или выше. С помощью средства проверки драйверов вы можете быстро найти все ошибки драйвера в этой области. В противном случае эти ошибки, как правило, будут найдены только клиентами, и они часто могут быть очень трудными для воспроизведения.