Команды средства проверки статических драйверов (MSBuild)
Вы можете запустить средство проверки статических драйверов (SDV) в окне командной строки Visual Studio либо с помощью установки комплекта драйверов Windows (WDK) или с помощью пакета драйверов Enterprise Windows (EWDK). Перейдите в каталог, в котором хранится файл проекта драйвера или файл проекта библиотеки. Параметры могут отображаться в любом порядке в командной строке.
Внимание
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 и проверка логотипа статических инструментов.
msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform
Необходимо выбрать конфигурацию выпуска (например, /p:Configuration="Выпуск Windows 7". Список поддерживаемых конфигураций выпуска см. в разделе "Создание драйвера". Платформа может быть Win32 (для x86) или x64 (например, /p:Platform=Win32).
Примечание.
Не забудьте проверить план управления питанием компьютера, чтобы убедиться, что компьютер не перейдет в состояние спящего режима во время анализа.
Параметры
/scan
Сканирует исходный код драйвера для объявлений типов ролей функции. Сведения о том, как объявить предоставленные драйвером функции обратного вызова и подпрограммы отправки, см. в разделе "Использование объявлений типов ролей функции". Во время этой проверки SDV пытается обнаружить точки входа драйвера, необходимые для проверки драйвера. Он записывает результаты сканирования в sdv-map.h, файл, который он создает в каталоге проекта драйвера.
Дополнительные сведения см. в разделе "Подготовка исходного кода".
/check:Rule,... |
Запускает проверку с указанными правилами. Можно указать несколько правил, разделив каждое правило запятыми. Выполните команду /check: и укажите файл проекта Visual Studio драйвера (*.vcxproj).
Правило — это имя одного правила или шаблона имени правила , включающего подстановочные знаки (*) для представления одного или нескольких символов. При использовании в одиночку подстановочный знак (*) представляет все правила.
/check:RuleList.sdv
Запускает проверку с правилами в указанном файле списка правил. Вы можете перечислить только один файл с этим параметром. В файле списка правил каждая строка может быть именем одного правила, или это может быть подстановочный знак (*), представляющий все правила SDV. Выполните команду /check:RuleList.sdv и укажите файл проекта Visual Studio драйвера (*.vcxproj).
RuleList.sdv — это полный путь и имя файла списка правил. Файл должен иметь расширение SDV-файла . Если файл находится в локальном каталоге, путь требуется. Если путь или имя файла содержит пробелы, необходимо заключить RuleList.sdv в кавычках.
Если указать параметр /check: без указания правила SDV запускается с набором правил по умолчанию для модели драйверов.
/lib
Обрабатывает библиотеку в текущем каталоге. SdV вызывает MSBuild.exe для компиляции и сборки библиотеки для внешнего использования, и создает файлы, необходимые для включения библиотеки в проверку драйвера.
Используйте этот параметр перед проверкой драйверов, требующих библиотеки. Выполните команду msbuild /t:sdv /p:Inputs=/lib и укажите файл проекта Visual Studio (*.vcxproj) для библиотеки.
Дополнительные сведения об использовании и влиянии параметра /lib см. в разделе "Обработка библиотеки" в средстве проверки статических драйверов.
/вид
Открывает средство проверки статических драйверов. Выполните команды /view и укажите файл проекта Visual Studio драйвера (*.vcxproj).
Результаты доступны сразу после завершения проверки и остаются доступными, пока не будет использоваться команда /clean для удаления файлов SDV из каталога проекта драйвера.
/чистый
Удаляет файлы SDV из каталога. Так как эти файлы используются для создания отчета о проверке статического драйвера, команда /clean также удаляет отчет проверки.
Выполните команду /clean и укажите файл проекта Visual Studio (*.vcxproj) для драйвера или библиотеки. Команда удаляет файлы SDV только для указанного проекта.
Выполните команду /clean для проекта драйвера перед каждой проверкой.
Выполните команду /clean для библиотеки, если файлы библиотеки устарели, например при изменении кода библиотеки.
Команда /clean не удаляет файл Sdv-map.h, если утвержденный флаг имеет значение true в файле Sdv-map.h (утверждено=true). Затем SDV может использовать этот файл для будущих проверок.
/?
Отображает использование команд SDV. Команды, использующие этот параметр, не должны выполняться в окне среды сборки.
Комментарии
Запуск msbuild /t:/sdv p:/Inputs= /? без параметров отображает использование команд SDV.
Команда /clean удаляет файлы, которые SDV использует для создания отчета проверки статического драйвера для проверки. После выполнения этой команды отчет о проверке статического драйвера больше недоступен.
Примеры
Чтобы запустить SDV, используя все правила файлов драйверов в локальном каталоге для проекта mydriver:
msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32
Чтобы запустить SDV с помощью правила CancelSpinLock в файлах драйверов в локальном каталоге:
msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32
Чтобы запустить SDV с помощью правила, указанного в файле списка правил Rules1.sdv в каталоге D:\SDV:
msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32
Чтобы снова запустить SDV, на этот раз с помощью параметра /clean:
msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32
Чтобы отобразить средство проверки статических драйверов, чтобы просмотреть результаты последней проверки драйвера в локальном каталоге:
msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32
См. также
Использование средства проверки статических драйверов для поиска дефектов в драйверах Windows