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


Средство проверки статических драйверов

Средство проверки статических драйверов (также известное как StaticDV или SDV) — это статическое средство проверки, которое систематически анализирует исходный код драйверов в режиме ядра Windows. SDV — это средство времени компиляции, которое может обнаруживать дефекты и проблемы проектирования в драйвере. На основе набора правил интерфейса и модели операционной системы SDV определяет, правильно ли драйвер взаимодействует с ядром операционной системы Windows.

Это важно

SDV больше не поддерживается, а SDV недоступен в выпусках Windows 24H2 WDK или EWDK. Он недоступен в версиях WDK, выпущенных позже сборки 26017, и не включен в WDK Windows 24H2 RTM. SDV по-прежнему можно использовать, скачав Windows 11 версии 22H2 EWDK (выпущено 24 октября 2023 г.) с инструментами сборки Visual Studio 17.1.5 из скачивания комплекта драйверов Windows (WDK). Рекомендуется использовать только enterprise WDK для запуска SDV. Использование более старых версий стандартной WDK в сочетании с последними выпусками Visual Studio не рекомендуется, так как это, скорее всего, приведет к сбоям анализа.
В будущем CodeQL будет основным средством статического анализа драйверов. CodeQL предоставляет мощный язык запросов, который обрабатывает код как базу данных для запроса, что упрощает запись запросов для конкретных поведения, шаблонов и многого другого. Дополнительные сведения об использовании CodeQL см. в разделе CodeQL и проверка логотипа статических инструментов.

Установка средства проверки статических драйверов

Средство проверки статических драйверов доступно в составе комплекта драйверов Windows (WDK) как в полном интерфейсе WDK, так и в автономном корпоративном WDK. Кроме того, распространяемые пакеты Visual C++ для Visual Studio требуются для запуска SDV. См. следующие разделы:

Интеграция Visual Studio

Средство проверки статических драйверов интегрировано в Visual Studio. Вы можете выполнить статический анализ в проекте драйвера Visual Studio. Вы можете запустить, настроить и контролировать средство проверки статических драйверов из меню "Драйвер " в Visual Studio.

Документация по проверке статических драйверов

Поиск ошибок в коде драйвера Windows

Корпорация Майкрософт использует SDV для тестирования драйверов в режиме ядра, включенных в операционную систему Microsoft Windows, и для тестирования примеров драйверов в WDK. С помощью правил соответствия DDI для определенных моделей драйверов SDV может проверить правильное поведение драйвера. Например, SDV может проверить, что драйвер:

  • Вызывает функции на правильном уровне IRQL
  • Получает и освобождает блокировки в правильной последовательности
  • Правильно использует функции, обрабатывающие пакеты запросов ввода-вывода (IRP)

SDV проверяет все возможные пути через код драйвера. Он предназначен для поиска серьезных ошибок в маловероятных путях, которые вряд ли обнаруживаются даже при тщательном тестировании.

Дополнительные ресурсы

Дополнительные сведения о драйверах, которые могут проверить SDV, см. в разделе "Поддерживаемые драйверы"

Дополнительные сведения и советы по использованию средства проверки статических драйверов см. в следующих статьях: