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