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


Нечеткое выполнение задержки синхронизации ядра

Примечание

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

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

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

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

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

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

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

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

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

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

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

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

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

Почему синхронизация ядра задерживает нечеткое выполнение?

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