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


Команды средства проверки статических драйверов (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