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


Систематическое моделирование низких ресурсов

Вариант имитации систематических низких ресурсов внедряет сбои ресурсов в драйверы режима ядра. Этот параметр проникает в пути обработки ошибок драйвера. Тестирование этих путей исторически было очень трудным. Вариант систематического моделирования низких ресурсов внедряет сбои ресурсов предсказуемым образом, что делает проблемы, которые он находит воспроизводимыми. Так как пути ошибок легко воспроизвести, это также упрощает проверку исправлений этих проблем.

Чтобы определить первопричину ошибки, предоставляется расширение отладчика, которое может точно определить, какие ошибки были внедрены и в каком порядке.

Обратите внимание, что этот параметр не предназначен для использования при проверке всех драйверов (или большой коллекции) на компьютере. Этот параметр следует использовать только при выполнении целевого тестирования отдельных драйверов или подключенных драйверов фильтров. Использование этого параметра для большого количества драйверов одновременно может привести к непредсказуемым результатам и может привести к сбою компонентов, не связанных с тестируемыми драйверами.

Примечание. Для Windows 8.1 функция внедрения сбоев на основе стека, которая была доступна в WDK 8, была интегрирована в средство проверки драйверов. На компьютерах под управлением Windows 8.1 используйте вариант имитации систематических низких ресурсов.

Если включен параметр имитации систематических низких ресурсов для определенного драйвера, он перехватывает некоторые вызовы от этого драйвера к ядру и Ndis.sys. Систематическое моделирование низких ресурсов смотрит на стек вызовов, в частности, в части стека вызовов, который поставляется из драйвера, на который он включен. Если это первый раз, когда он видел этот стек, вызов завершится ошибкой в соответствии с семантикой этого вызова. В противном случае, если он видел этот вызов раньше, он будет передавать его через неуправляемый. Систематическое моделирование низких ресурсов содержит логику, связанную с тем, что драйвер можно загрузить и выгрузить несколько раз. Он распознает, что стек вызовов совпадает, даже если драйвер перезагрузится в другое расположение памяти.

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

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

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

    Windows 11

    В командной строке систематическая имитация низких ресурсов представлена проверятелем /rc 19 36 или проверятелем /dif 19, оба из которых включают необходимый режим DIF.

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

    Windows 10 и ниже

    В командной строке имитация систематических низких ресурсов представлена проверятелем /flags 0x040000 (бит 18). Для систематического моделирования низких ресурсов используйте значение флага 0x040000 или добавьте 0x040000 в значение флага. Например:

    verifier /flags 0x040000 /driver MyDriver.sys
    

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

    Общие сведения

    Если включить параметр имитации систематических низких ресурсов, можно использовать параметр командной строки /faultssystematic OPTION для дальнейшего управления имитацией систематического низкого уровня ресурсов.

    OPTION Описание

    enableboottime

    Включает внедрение ошибок во время перезагрузки компьютера.

    disableboottime

    Отключает внедрение ошибок при перезагрузке компьютера (это параметр по умолчанию).

    recordboottime

    Включает внедрение ошибок в режиме при перезагрузке компьютера.

    resetboottime

    Отключает внедрение ошибок при перезагрузке компьютера и очищает список исключений стека.

    enableruntime

    Динамически включает внедрение ошибок.

    disableruntime

    Динамически отключает внедрение ошибок.

    recordruntime

    Динамически включает внедрение ошибок в режиме if .

    resetruntime

    Динамически отключает внедрение ошибок и очищает ранее неисправный список стека.

    статистика запросов

    Отображает текущую статистику внедрения ошибок.

    incrementcounter

    Увеличивает счетчик тестовой передачи, используемый для идентификации при внедрении сбоя.

    getstackid COUNTER

    Извлекает указанный идентификатор внедренного стека.

    excludestack STACKID

    Исключает стек из внедрения ошибок.

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

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

Отладка проверок ошибок, вызванных систематическим моделированием низких ресурсов

Большая часть проблем, обнаруженных при моделировании систематических низких ресурсов, приводит к проверке ошибок. Чтобы определить причину этих ошибок кода, средства отладки для Windows предоставляют расширение отладчика (kdexts.dll) и необходимые символы.

Запуск расширения отладчика

  • В командной строке отладчика введите следующую команду:

    !verifier 0x800
    

Это приведет к дампам сведений в отладчик, показывающий стеки вызовов из последних сбоев, внедренных.