Систематическое моделирование нехватки ресурсов
Параметр Систематическое моделирование нехватки ресурсов внедряет сбои ресурсов в драйверы режима ядра. Этот параметр проникает в пути обработки ошибок драйвера. Тестирование этих путей исторически было очень трудным. Параметр Систематическое моделирование нехватки ресурсов позволяет прогнозировать сбои ресурсов, что делает проблемы, которые он считает воспроизводимыми. Так как пути ошибок легко воспроизвести, это также упрощает проверку исправлений для этих проблем.
Чтобы помочь определить первопричину ошибки, предоставляется расширение отладчика, которое может точно указать, какие сбои были внедрены и в каком порядке.
Осторожностью Этот параметр не предназначен для использования при проверке всех (или большой коллекции) драйверов на компьютере. Этот параметр следует использовать только при целевом тестировании отдельных драйверов или подключенных к ним драйверов фильтров. Одновременное использование этого параметра для большого количества драйверов может привести к непредсказуемым результатам и привести к сбою в компонентах, не связанных с тестируемыми драйверами.
Примечание Для 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
Функция будет активна после следующей загрузки.
Общие сведения
При включении параметра Имитация систематического нехватки ресурсов можно использовать параметр командной строки /faultssystematicOPTION для дальнейшего управления имитацией систематического снижения ресурсов.
OPTION Описание enableboottime
Включает внедрение ошибок при перезагрузке компьютера.
disableboottime
Отключает внедрение ошибок при перезагрузке компьютера (это параметр по умолчанию).
recordboottime
Включает внедрение ошибок в режиме "что если " при перезагрузке компьютера.
resetboottime
Отключает внедрение ошибок при перезагрузке компьютера и очищает список исключений стека.
enableruntime
Динамически включает внедрение ошибок.
disableruntime
Динамически отключает внедрение ошибок.
recordruntime
Динамически включает внедрение ошибок в режиме "что если ".
resetruntime
Динамически отключает внедрение ошибок и очищает список ранее неисправных стеков.
querystatistics
Отображает текущую статистику внедрения ошибок.
incrementcounter
Увеличивает значение счетчика тестового прохода, используемого для определения момента внедрения ошибки.
getstackid COUNTER
Извлекает указанный идентификатор внедренного стека.
excludestack STACKID
Исключает стек из внедрения ошибок.
Использование диспетчера проверки драйверов
- Запустите диспетчер проверки драйверов. Введите Verifier в окне командной строки.
- Выберите Создать пользовательские параметры (для разработчиков кода) и нажмите кнопку Далее.
- Выберите Выбрать отдельные параметры из полного списка.
- Выберите (проверка) Имитация систематического нехватки ресурсов.
- Перезагрузите компьютер.
Отладка проверок ошибок, вызванных систематическим моделированием нехватки ресурсов
Большинство проблем, обнаруженных при имитации систематического нехватки ресурсов, приводят к проверке ошибок. Чтобы определить причину этих ошибок в коде, средства отладки для Windows предоставляют расширение отладчика (kdexts.dll) и необходимые символы.
Запуск расширения отладчика
В командной строке отладчика введите следующую команду:
!verifier 0x800
Это приведет к дампу сведений в отладчик, в котором отображаются стеки вызовов из последних внедренных сбоев.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по