Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Параметр "Инвариантная проверка MDL для стека" отслеживает, как драйвер обрабатывает инвариантные буферы MDL в стеке драйверов. Средство проверки драйверов может обнаружить незаконное изменение инвариантных буферов MDL. Чтобы использовать этот параметр, проверка ввода-вывода должна быть включена по крайней мере на одном драйвере.
Заметка Этот параметр доступен начиная с Windows 8.
Параметр "Инвариантная проверка MDL для стека" гарантирует, что драйверы следуют правилам для инвариантных буферов MDL только в точке, когда запрос покидает стек драйверов.
При первом просмотре IRP с инвариантным MDL в подпрограмме IoCallDriver уникальная подпись вычисляется из содержимого инвариантного буфера MDL и хранится во внутренней базе данных. Во время завершения IRP в подпрограмме IoCompleteRequest, если IRP по-прежнему содержит инвариантный MDL, для которого была записана подпись, средство проверки драйверов удостоверяется, что буфер не изменился.
Инвариантный буфер для запроса на запись не может быть изменен в течение всего времени существования IRP. Для запроса на чтение инвариантный буфер нельзя изменить по пути отправки, поэтому сравнение сигнатуры буфера выполняется при последнем вызове IoCallDriver.
Параметр "Инвариантная проверка MDL для стека" проверяет инвариантность буфера MDL во всем стеке драйверов без учета того, что происходит с буфером по мере прохождения отдельных драйверов в стеке. Этот параметр является глобальным и не может быть применен выборочно по отношению к каждому драйверу. Параметр "Инвариантная проверка MDL для стека" может только обнаружить нарушение, не будучи в состоянии точно указать на драйвер, который нарушил инвариантность буфера. Чтобы определить неисправный драйвер, используйте параметр invariant MDL Validate for Driver , который проверяет инвариантность содержимого буфера при каждом вызове IoCallDriver и IoCompleteRequest DDIs.
активация этого параметра
Вы можете активировать функцию проверки инвариантности MDL для одного или нескольких драйверов, используя менеджер проверки драйверов или команду Verifier.exe в командной строке. Необходимо перезапустить компьютер, чтобы включить или отключить инвариантную проверку MDL для стека. Дополнительные сведения см. в разделе "Выбор параметров средства проверки драйвера".
Чтобы активировать инвариантную проверку MDL для стека, необходимо также активировать проверку ввода-вывода.
В командной строке
В командной строке инвариантная проверка MDL для стека представлена 0x00002000 (бит 13). Чтобы активировать инвариантную проверку MDL для Stack, используйте значение флага 0x00002010 или добавьте 0x00002010 в значение флага. Это значение активирует проверку ввода-вывода (0x10) и инвариантную проверку MDL для стека (0x00002000). Рассмотрим пример.
verifier /flags 0x00002010 /driver MyDriver.sysФункция будет активна после следующей загрузки.
Использование диспетчера проверки драйверов
- Запустите диспетчер проверки драйверов. В окне командной строки введите средство проверки .
- Выберите "Создать настраиваемые параметры" (для разработчиков кода) и нажмите кнопку "Далее".
- Выберите отдельные параметры из полного списка.
- Выберите (проверьте) проверку ввода-вывода и инвариантную проверку MDL для стека.
- Перезапустите компьютер.