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


Фаззинг задержек синхронизации ядра

Замечание

Эта проверка устарела начиная с Windows 10 сборки 19042 и выше

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

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

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

При выборе параметра средство проверки драйверов вставляет случайные задержки в различных точках в потоках. Как и параметр Fuzzing задержки в Power Framework, параметр Fuzzing задержки синхронизации ядра использует алгоритм, который помогает повысить шансы на поиск ошибок в драйверах. Фаззинг задержки синхронизации ядра улучшает традиционное стресс-тестирование, где тестовая программа выполняется в течение нескольких дней или даже недель, чтобы выявить проблемы, которые могут возникнуть при параллельном выполнении.

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

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

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

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

    В командной строке фаззинг задержки синхронизации ядра представлен как верификатор /flags 0x00800000 (бит 23). Чтобы активировать задержку обработки в рамках Power Framework, используйте значение флага 0x00800000 или добавьте 0x00800000 к значению флага. Рассмотрим пример.

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

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

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

Почему фаззинг задержек синхронизации ядра?

Большинство подпрограмм драйверов являются повторными и параллельными. Ошибки, связанные с параллелизмом, как известно, трудно найти. Ошибки могут включать взаимоблокировки и условия гонки, вызванные проблемами синхронизации и неправильным распределением времени между потоками. Стресс-тестирование является традиционным методом тестирования для поиска этих ошибок, но это может быть медленно и дорого, и результаты не всегда воспроизводимы. Параметр задержки синхронизации ядра повышает вероятность появления состояний гонки в процессе выполнения путем вставки случайных задержек в вызовы различных функций API ядра. Например, если состояние гонки приводит к тому, что драйвер обращается к IRP после его отмены, опция нечеткости задержки синхронизации ядра увеличивает вероятность этого состояния гонки так, чтобы Драйвер Верификатор обнаружил ошибку во время тестирования. Параметр задержки синхронизации ядра повышает эффективность и результативность верификатора драйверов.