Проверка соответствия DDI

Параметр проверки соответствия интерфейса драйвера устройства (DDI) определяет, правильно ли взаимодействует драйвер с ядром операционной системы Windows.

Примечание Этот параметр доступен, начиная с Windows 8. Начиная с Windows 8.1, вы можете протестировать дополнительные правила, выбрав активацию проверки соответствия DDI (дополнительно).

Проверка соответствия DDI

Параметр проверки соответствия требованиям DDI применяет те же правила использования интерфейса драйвера устройства (DDI), которые использует средство проверки статических драйверов , чтобы убедиться, что драйвер выполняет вызовы функций на требуемом IRQL для функции, или правильно получает и освобождает спин-блокировки.

Если этот параметр активен и средство проверки драйверов обнаруживает, что драйвер нарушает одно из правил соответствия DDI, средство проверки драйверов выдает проверка 0xC4 ошибок (с параметром 1, равным идентификатору конкретного правила соответствия).

При выборе параметра проверки соответствия требованиям DDI включаются следующие правила.

GuardedRegions (начиная с Windows 8.1)

IoSetCompletionExCompleteIrp (начиная с Windows 8.1)

IrqlApcLte

IrqlDispatch

IrqlExAllocatePool

IrqlExApcLte1

IrqlExApcLte2

IrqlExApcLte3

IrqlExPassive

IrqlIoApcLte

IrqlIoDispatch

IrqlIoPassive1

IrqlIoPassive2

IrqlIoPassive3

IrqlIoPassive4

IrqlIoPassive5

IrqlKeApcLte1

IrqlKeApcLte2

IrqlKeDispatchLte

IrqlKeReleaseSpinLock

IrqlKeSetEvent

IrqlMmApcLte

IrqlMmDispatch

IrqlObPassive

IrqlPsPassive

IrqlReturn (начиная с Windows 8.1)

IrqlRtlPassive

IrqlZwPassive

NdisOidComplete (начиная с Windows 8.1)

NdisOidDoubleComplete (начиная с Windows 8.1)

PnpRemove (начиная с Windows 8.1)

RequestedPowerIrp (начиная с Windows 8.1)

QueuedSpinLock (начиная с Windows 8.1)

SpinLock (начиная с Windows 8.1)

Эти два правила в настоящее время необязательны, но рекомендуется.

(Необязательно) IrqlNtifsApcPassive

(Необязательно) IrqlIoRtlZwPassive

Активация параметра проверки соответствия DDI

Функцию проверки соответствия DDI для одного или нескольких драйверов можно активировать с помощью диспетчера проверки драйверов или командной строки Verifier.exe. Дополнительные сведения см. в разделе Выбор параметров средства проверки драйверов. Необходимо перезагрузить компьютер, чтобы активировать или отключить параметр проверки соответствия DDI. Функция проверки соответствия DDI активируется при использовании стандартных параметров (/standard).

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

    В командной строке проверка соответствия DDI представлена проверятелем /flags 0x00020000 (бит 17). Чтобы активировать проверку соответствия DDI, используйте значение флага 0x00020000 или добавьте 0x00020000 к значению флага. Пример:

    verifier /flags 0x00020000 /driver MyDriver.sys
    

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

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

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

Проверка соответствия DDI (дополнительная)

Начиная с Windows 8.1 параметр проверки соответствия DDI (дополнительно) предоставляет дополнительные правила для определения правильности взаимодействия драйвера с ядром операционной системы Windows. При выборе параметра проверка соответствия DDI (дополнительная) проверяются следующие правила:

Активация параметра проверки соответствия DDI (дополнительно)

Примечание

Этот проверка является нерекомендуемой начиная со сборки Windows 10 19042 и более поздних версий

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

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

    В командной строке проверка соответствия DDI представлена проверятелем /flags 0x00080000 (бит 19). Чтобы активировать проверку соответствия DDI (дополнительная), используйте значение флага 0x00080000 или добавьте 0x00080000 к значению флага. Пример:

    verifier /flags 0x00080000 /driver MyDriver.sys
    

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

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

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

Активация параметра проверки соответствия DDI (дополнительный IRQL)

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

В командной строке дополнительная проверка irQL соответствия DDI представлена значением класса правила 35. Пример:

verifier /ruleclasses 35 /driver MyDriver.sys

ИЛИ

verifier /rc 35 /driver MyDriver.sys

Дополнительный набор правил IRQL состоит из следующих двух правил.

(Необязательно) IrqlNtifsApcPassive

(Необязательно) IrqlIoRtlZwPassive