Создание драйвера с помощью Visual Studio или MSBuild
В этом разделе содержатся инструкции по созданию драйвера с помощью среды разработки Visual Studio или из командной строки с помощью окна командной строки Visual Studio и подсистемы сборки Microsoft (MSBuild).
Для разработки драйверов для Windows необходимо установить пакет SDK и WDK в Visual Studio и настроить параметры драйвера. Убедитесь, что на компьютере соответствуют версии пакета SDK и WDK.
Создание драйвера с помощью Visual Studio
Вы создаете драйвер так же, как вы создаете любой проект или решение в Visual Studio. При создании проекта драйвера с помощью шаблона драйвера шаблон определяет конфигурацию проекта по умолчанию (активная) и конфигурация сборки решения по умолчанию (активная).
Сведения об управлении конфигурациями сборки и редактировании см. в статье "Сборка" в Visual Studio.
Параметры драйвера KMDF
Чтобы настроить параметры драйвера в VS 2022, щелкните правой кнопкой мыши проект драйвера, выберите свойства и перейдите к разделу Properties ->Configuration Properties ->Driver Параметры.
Версия целевой ОС
Целевая версия ОС ссылается на версию Windows, для которой разрабатывается драйвер. Задайте для целевой версии ОС наименьшую версию, которой поддерживается драйвер. Например, драйвер для Windows 10 должен поддерживать Windows 10 и все более поздние версии.
Следуйте инструкциям в этих разделах, чтобы убедиться, что пакет драйверов правильно написан для поддержки нескольких версий Windows.
Целевая платформа
Существует 3 классификации для целевой платформы Windows, универсальных драйверов, драйверов настольных компьютеров и драйверов Windows.
Универсальные драйверы должны:
- Не используйте монеты.
- Будьте совместимы с принципами проектирования DCH. Ознакомьтесь с принципами и рекомендациями по проектированию DCH.
- Пройти
InfVerif /u
Драйверы для настольных компьютеров должны:
- Соблюдайте все требования к универсальным драйверам.
- Будьте совместимы с требованиями программы совместимости оборудования Windows (WHCP).
- Передайте
InfVerif /h
. Дополнительные сведения см. в разделе InfVerif /h.
Драйверы, соответствующие критериям драйвера для настольных компьютеров, сертифицированы логотипом Windows, и их можно добавить в программу Обновл. Windows.
Драйверы Windows должны:
- Соблюдайте все требования к драйверам для настольных компьютеров.
- Будьте полностью совместимы с требованиями к изоляции пакетов драйверов.
- Пройти
InfVerif /w
- Драйверы Windows — это самый строгий выбор целевой платформы и соответствует всем требованиям к надежности и доступности обслуживания.
В следующей таблице перечислены классификации драйверов.
Функция | Универсальные драйверы | Драйверы для настольных компьютеров | Драйверы Windows |
---|---|---|---|
Infverif Switch | InfVerif /u |
InfVerif /h |
InfVerif /w |
Текущее требование WHCP | No | Да | Нет |
Поддерживает все варианты ОС Windows | No | No | Да |
Поддержка X64/ARM64 | Да | Да | Да |
Требование соответствия APIVALIDATOR | No | No | Да |
Поддержка ос для настольных компьютеров (целевая версия ОС) | Да | Да | Да |
Поддержка примеров драйверов GitHub | Да | Да | Нет |
Конфигурация драйвера
При создании драйверов убедитесь, что архитектура платформы и NT_TARGET_VERSION правильно настроены в Visual Studio с помощью WDK или EWDK. Конфигурация сборки решения по умолчанию для разработки — отладка и Win64.
- Выберите и удерживайте решение (или щелкните его правой кнопкой мыши) в Обозреватель решения и выберите Configuration Manager.
- В Configuration Manager выберите конфигурацию активного решения (например, отладку или выпуск) и платформу активных решений (например, Win64), соответствующую типу нужной сборки.
- Выберите проект и удерживайте его (или щелкните правой кнопкой мыши) и выберите "Свойства". Перейдите к драйверу Параметры ->General и задайте целевую версию ОС и целевую платформу.
- Настройте свойства проекта для пакета драйверов или драйверов. Можно задать свойства для развертывания, подписывания драйвера или других задач. Дополнительные сведения см. в разделе "Настройка свойств проекта" для пакета драйверов и драйверов.
Создание драйвера
- Откройте проект драйвера или решение в Visual Studio.
- В меню "Сборка" выберите "Создать решение" (CTRL+SHIFT+B).
- Просмотр ошибок времени компиляции в окне вывода сборки.
Создание драйвера с помощью командной строки (MSBuild)
Вы можете создать драйвер из командной строки Visual Studio с помощью окна командной строки Visual Studio и ядра сборки Майкрософт (MSBuild)
Создание драйвера с помощью окна командной строки Visual Studio
Откройте командную строку разработчика для VS2022.
В этом окне можно использовать MSBuild.exe для создания любого проекта Visual Studio, указав файл проекта (.vcxproj) или решения (.sln).
Перейдите в каталог проекта и введите команду MSBuild для целевого объекта.
Например, чтобы выполнить чистую сборку проекта драйвера Visual Studio с именем MyDriver.vcxproj с помощью платформы и конфигурации по умолчанию, перейдите в каталог проекта и введите следующую команду MSBuild:
msbuild /t:clean /t:build .\MyDriver.vcxproj
Чтобы указать определенную конфигурацию и платформу, используйте:
msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS
Следующая команда создает драйвер для конфигурации отладки, платформы Win32 и Windows 10.
msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion="Windows10" /p:TargetPlatformVersion="10.0.10010.0"
Параметр TargetPlatformVersion является необязательным и указывает версию комплекта для сборки. По умолчанию используется последняя версия комплекта.
Настройка свойств проекта для пакета драйверов и драйверов
Используйте страницы свойств для настройки и задания параметров для пакета драйверов и драйверов. Вы можете настроить драйвер таким образом, чтобы он автоматически подписывался при сборке решения или автоматически развертывался на удаленном тестовом компьютере.
Вы можете задать свойства для отдельного драйвера или для всего пакета драйвера. В следующем разделе показаны некоторые доступные свойства, которые можно настроить специально для драйверов и пакетов драйверов.
Свойства проекта драйвера
Свойства подписывания отдельных файлов драйверов — подписывание драйвера
Счетчики свойств препроцессора манифеста для проектов драйверов
Свойства пакета драйвера
Свойства подписывания пакетов драйверов — подписывание драйвера
Свойства средства проверки драйверов для проектов пакетов драйверов
Свойства средства проверки KMDF для проектов пакетов драйверов
Свойства проверяющего средства UMDF для проектов пакетов драйверов
Свойства Inf2Cat для проектов пакетов драйверов и Inf2Cat
Интеграция проекта программы командной строки WDK
WDK предоставляет ряд средств командной строки, таких как Stampinf и препроцессор WPP (трассировка WPP), которые обычно включаются в процесс сборки. Эти средства не распределяются с Помощью Visual Studio. Чтобы объединить эти средства с средой сборки Visual Studio, они упаковываются в виде задач WDK для MSBuild. Если вы используете один из шаблонов драйверов или имеете преобразованный драйвер, эти страницы свойств могут уже существовать для проекта. Если нет, страницы свойств автоматически добавляются в проект при добавлении связанных типов файлов в проект или решение (например, mc или .man files для компилятора сообщений). Дополнительные сведения см. в разделе WDK и среде сборки Visual Studio.
Совет по устранению неполадок для создания драйвера
Чтобы устранить неполадки сборки, можно увеличить детализацию выходных данных сборки в Visual Studio:
- Выберите "Сервис -> параметры".
- Выберите папку "Проект и решения " и выберите "Сборка и запуск".
- Измените параметры детализации выходных данных сборки проекта MSBuild и детализации файла журнала сборки проекта MSBuild. По умолчанию для них задано значение "Минимальный".
Обновление драйверов Windows 8
Вы можете преобразовать проекты и решения, созданные с помощью WDK 8 или комплекта драйверов Windows (WDK) 8.1, чтобы работать с комплектом драйверов Windows (WDK) 10 и Visual Studio. Перед открытием проектов или решений запустите ProjectUpgradeTool. ProjectUpgradeTool преобразует проекты и решения, чтобы их можно было создавать с помощью WDK 10.
Начиная с пакета драйверов Windows (WDK) 8, MSBuild заменил служебную программу сборки Windows (Build.exe). В WDK используются те же средства компилятора и сборки, которые используются для создания проектов Visual Studio. Проекты драйверов, созданные с использованием предыдущих версий WDK, необходимо преобразовать в работу в среде Visual Studio. Вы можете запустить программу преобразования из командной строки или преобразовать существующий драйвер, создав проект Visual Studio из существующих источников. Дополнительные сведения см. в статье "Создание драйвера из существующих исходных файлов и WDK" и среды сборки Visual Studio.
См. также
- Сборка в Visual Studio
- Создание драйверов для различных версий Windows
- Использование среды выполнения Microsoft C с драйверами пользовательского режима и классическими приложениями
- ProjectUpgradeTool
- MSBuild
- Создание драйвера из существующих исходных файлов
- WDK и среда сборки Visual Studio
- Подписывание драйвера
- Развертывание драйвера на тестовом компьютере
- InfVerif /h