Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ниже приведены дополнительные ошибки, которые водители иногда делают при обработке IRP.
Потерянные или дважды завершенные IRP
Эти проблемы, а также отсутствующие вызовы к подпрограммам диспетчера ввода-вывода, таким как IoStartNextPacket, часто возникают в путях обработки ошибок. Быстрые проверки путей драйвера способны выявить такие проблемы.
Конвергентные общедоступные пути IOCTL и частные пути IOCTL
Как правило, драйверы должны содержать отдельные потоки выполнения для общедоступных и частных операций ввода-вывода (или FSCTL). Драйвер не может определить, возникает ли запрос IOCTL или FSCTL в режиме ядра или пользовательском режиме, просматривая код элемента управления. Следовательно, обработка общедоступных и частных кодов в одном пути выполнения (или выполнение минимальной проверки, а затем вызов одних и тех же подпрограмм) может открыть драйвер для нарушений безопасности. Если частный IOCTL или FSCTL является привилегированным, непривилегированные пользователи, которые знают коды управления, могут получить к нему доступ. Таким образом, если ваш драйвер поддерживает приватные запросы IOCTL или FSCTL, убедитесь в том, что он обрабатывает такие запросы отдельно от публичных IOCTL или FSCTL, которые он также должен поддерживать.