Поделиться через


Инвариантная проверка MDL для драйвера

Параметр "Инвариантная проверка MDL для драйвера" контролирует, как каждый драйвер обрабатывает инвариантные буферы MDL. Этот параметр обнаруживает незаконное изменение инвариантных буферов MDL. Чтобы использовать этот параметр, необходимо включить проверку ввода-вывода по крайней мере на одном драйвере.

Заметка Этот параметр доступен начиная с Windows 8.

Параметр "Инвариантная проверка MDL для драйвера" выполняет более интенсивную форму инвариантной проверки MDL, чем параметр "Инвариантная проверка MDL для стека ". Когда инвариантная проверка MDL для драйвера активна, буферная инвариантность проверяется при каждом вызове подпрограмм IoCallDriver и IoCompleteRequest .

Каждый раз при каждом просмотре нового инвариантного буфера MDL с помощью IRP средство проверки драйверов вычисляет подпись для содержимого буфера и сохраняет его во внутренней базе данных. Когда средство проверки драйверов обнаруживает инвариантный буфер MDL, который он видел ранее, он проверяет, что содержимое буфера не изменилось, сравнивая сигнатуру в базе данных с сигнатурой, вычисляемой по текущему инвариантном содержимому буфера MDL.

Этот параметр является глобальным и не может быть применен выборочно для некоторых драйверов.

активация этого параметра

Вы можете активировать проверку инвариантности MDL для одного или нескольких драйверов, используя управляющий проверкой драйверов или командную строку Verifier.exe. Дополнительные сведения см. в разделе "Выбор параметров средства проверки драйвера". Чтобы активировать или отключить инвариантную проверку MDL для драйвера, необходимо перезапустить компьютер.

Чтобы активировать инвариантную проверку MDL для стека , необходимо также активировать проверку ввода-вывода.

  • В командной строке

    В командной строке инвариантная проверка MDL для драйвера представлена проверятелем /flags 0x00004000 (бит 14). Чтобы активировать инвариантную проверку MDL для драйвера, используйте значение флага 0x00004010 или добавьте 0x00004010 в значение флага. Это значение активирует проверку ввода-вывода (0x10) и инвариантную проверку MDL для драйвера (0x00004000). Рассмотрим пример.

    verifier /flags 0x00004010 /driver MyDriver.sys
    

    Функция будет активна после следующей загрузки.

  • Использование диспетчера проверки драйверов

    1. Запустите диспетчер проверки драйверов. В окне командной строки введите средство проверки .
    2. Выберите "Создать настраиваемые параметры" (для разработчиков кода) и нажмите кнопку "Далее".
    3. Выберите отдельные параметры из полного списка.
    4. Выберите (отметить)Проверка ввода-вывода и проверка инварианта MDL для драйвера.
    5. Перезапустите компьютер.