Набор инструментов платформы
Комплект драйверов Windows (WDK) использует набор инструментов платформы MSBuild для предоставления инструментов и библиотек, относящихся к разработке драйверов. Функция набора инструментов платформы MSBuild является расширяемой. Конкретная версия набора инструментов платформы, которую вы хотите использовать, управляется свойством MSBuild с именем PlatformToolset. Проекты могут переключаться между инструментами и библиотеками, задав свойство PlatformToolset в файле проекта.
Пакет драйверов Для Windows (WDK) 8.1 предоставляет следующие наборы инструментов платформы для разработки драйверов.
PlatformToolset (WDK 8.1) | Использование |
---|---|
WindowsKernelModeDriver8.1 | Для драйверов и компонентов в режиме ядра. |
WindowsUserModeDriver8.1 | Для драйверов и компонентов пользовательского режима. |
WindowsApplicationForDrivers8.1 | Для любого типа приложения. Этот набор инструментов платформы обеспечивает совместимость с параметрами сборки, используемыми в комплекте драйверов Windows (WDK) для Windows 7 (WDK 7.1), а также использует параметры по умолчанию, которые являются общими для разработки приложений пользовательского режима, взаимодействующих с драйверами. Этот параметр можно использовать при переносе или преобразовании проекта, созданного с помощью WDK 7. |
Visual Studio 2013 (версия 120) | Используется для любого типа приложения Windows (по умолчанию). |
Пакет драйверов Windows (WDK) 8 предоставляет следующие наборы инструментов платформы для разработки драйверов. Эти сведения предоставляются только для справки.
PlatformToolset (WDK 8) | Использование |
---|---|
WindowsKernelModeDriver8.0 | Для драйверов и компонентов в режиме ядра. |
WindowsUserModeDriver8.0 | Для драйверов и компонентов пользовательского режима. |
WindowsApplicationForDrivers8.0 | Для любого типа приложения. Этот набор инструментов платформы обеспечивает совместимость с параметрами сборки, используемыми в WDK для Windows 7 (WDK 7.1). Этот параметр можно использовать при переносе или преобразовании проекта, созданного с помощью WDK 7. |
Visual Studio 2012 (версия 110) | Используется для любого типа приложения Windows (по умолчанию). |
Примечание При создании драйвера на основе одного из доступных шаблонов драйверов Windows в Visual Studio задается свойство PlatformToolset . Вы также можете выбрать PlatformToolset с помощью страницы свойств проекта драйвера в Visual Studio. Настройка набора инструментов платформы в Visual Studio
- Откройте страницы свойств для проекта драйвера. Выберите и удерживайте (или щелкните правой кнопкой мыши) проект драйвера в Обозреватель решений и выберите Свойства.
- На страницах свойств для проекта драйвера выберите Свойства конфигурации , а затем — Общие.
- Выберите свойство Набор инструментов платформы для проекта из раскрывающегося списка.
Пример. Задание свойства PlatformToolset в файле проекта Visual Studio (VCXPROJ)
В следующем примере показано, как свойство PlatformToolset задается в файле проекта.
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label="Configuration">
<ConfigurationType>Driver</ConfigurationType>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
</PropertyGroup>
Свойство ConfigurationType управляет целевым расширением и типом выходных данных для создаваемого двоичного файла. Некоторые из возможных значений этого свойства: Application, DynamicLibrary, StaticLibrary и Utility.
WDK вводит новое значение для этого свойства с именем Driver для создания драйвера в режиме ядра. Если для этого свойства задано значение Driver, MSBuild создаст файл драйвера с расширением .sys. В этом примере свойство PlatformToolset имеет значение WindowsKernelModeDriver8.1 , чтобы создать драйвер в режиме ядра. WindowsKernelModeDriver8.1 — это единственный набор инструментов платформы WDK, которому требуется DriverConfigurationType. В этом примере для параметра DriverType задано значение KMDF.
Сведения о свойстве PlatformToolset для драйверов
PlatformToolset — это набор таблиц свойств, целевых объектов, средств и задач, которые работают вместе для расширения и изменения платформы для создания драйверов или компонентов режима ядра для этой конкретной платформы. Для драйверов и связанных компонентов и приложений свойство PlatformToolset должно иметь значение WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 или WindowsApplicationForDrivers8.1 в файле проекта. Эти наборы инструментов платформы предназначены для расширения существующего компилятора и компоновщика цепочки инструментов Visual Studio C\C++ с другими инструментами сборки WDK и предназначены для заголовков и библиотек WDK. Набор инструментов WindowsApplicationForDrivers8.1 обеспечивает совместимость с параметрами параметров сборки, которые были доступны в WDK для Windows 7 (WDK 7.1), а также с параметрами по умолчанию, которые являются общими для разработки приложений пользовательского режима, взаимодействующих с драйверами.
Набор инструментов платформы имеет параметры и целевые объекты на уровне платформы по умолчанию для сборки любого проекта драйвера. Параметры по умолчанию используются для средств сборки, таких как компилятор или компоновщик, системных сведений, таких как пути INCLUDE или LIBRARY для WDK, и параметров компонентов, таких как различные свойства, которые задаются при использовании строк Юникода или ANSI для сборки проекта драйвера. При разработке приложения Windows для настольных компьютеров не используйте набор инструментов платформы WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 или WindowsApplicationForDrivers8.1 . Вместо этого используйте набор инструментов платформы Visual Studio 2013 (версия 120).
По умолчанию свойство PlatformToolsetVisual Studio 2013 (версия 120) для вновь созданных проектов C++ в пользовательском режиме Win32 и проектов, которые были преобразованы в Visual Studio 2013. В обоих случаях свойство PlatformToolset не записывается в файл проекта.
При выборе одного из наборов инструментов платформы для драйверов задаются следующие свойства.
- ExecutablePath и NativeExecutablePath (PATH)
- IncludePath (INCLUDE)
- ReferencePath (LIBPATH)
- LibraryPath (LIB)
- SourcePath
- ExcludedPath
Примечание Если для UseEnv не задано значение TRUE, PATH, LIB, INCLUDE, LIBPATH будет задано из соответствующих значений свойств в наборе инструментов платформы. Если для UseEnv задано значение TRUE, как в старой системе сборки, будут использоваться значения переменных среды PATH, INCLUDE, LIB и LIBPATH.
Где WDK устанавливает файлы, которые позволяют использовать наборы инструментов платформы для конкретных драйверов.
В следующей таблице перечислены места, где WDK устанавливает файлы для включения наборов инструментов платформы для разработки драйверов.
Переменная пути | Описание |
---|---|
$(VCTargetsPath) |
По умолчанию $(VCTargetsPath) определяется в реестре как $(MSBuildExtensionsPath)<em><FOLDER<>MSBUILDSYNTAXVERSION.> Номер версии включается в том случае, если новый процесс сборки используется для той же платформы, которая имеет новый синтаксис и требует более поздней версии MSBuild. Папка<> — это папка Microsoft.Cpp : $(MSBuildExtensionsPath)\Microsoft.Cpp\4.0\v120. Это называется версией синтаксиса , а не версией инструментов. Это версия сборки первой версии Microsoft.Build.Engine , которая поддерживает весь необходимый синтаксис. Microsoft.Cpp указывает единственную папку, в которой Visual Studio будет искать платформы. |
$(VCTargetsPath)\Platforms$(Platform)\ImportAfter.props |
Необязательная папка, которая обычно не содержит файлы. Вы можете настроить платформу, сохранив файлы формата MSBuild в этой папке. Они будут импортированы в нижней части файла параметров платформы, как указано в папке, в которую они находятся в данный момент. Порядок импорта файлов из этого расположения не определен. Файлы, создаваемые MSBuild: $(VCTargetsPath)\Platforms$(Platform)\ImportAfter\Microsoft.Cpp. <Платформа>. WindowsKernelModeDriver8.1.props и Microsoft.Cpp. <Платформа>. WindowsUserModeDriver8.1.props, который импортирует несколько файлов свойств WDK. |
$(VCTargetsPath)\Platforms$(Platform)\PlatformToolsets$(PlatformToolset)</p> |
Для WDK: $ (PlatformToolset) должен иметь значение WindowsKernelModeDriver8.1 для создания драйверов режима ядра, WindowsUserModeDriver8.1 для создания драйверов пользовательского режима и WindowsApplicationForDrivers8.1 для совместимости с параметрами сборки, используемыми в Windows 7 WDK (WDK 7). Каталог platformToolset Например, C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1. Каталог PlatformToolsets позволяет позже добавлять другие типы файлов в собственную вложенную папку. |
Microsoft.Cpp.$(Platform).$(PlatformToolset).props |
Файл свойств набора инструментов платформы Импорт файлов свойств для сборки драйвера. Также импортирует файл свойств версии 120. |
Microsoft.Cpp.$(Platform).$(PlatformToolset).targets |
Файл целевых объектов набора инструментов платформы Импорт целевых файлов для сборки драйвера. Эти файлы содержат <теги UsingTask> для извлечения задач WDK. Эта функция также импортирует целевые объекты версии 120. |
$(WDKContentRoot)\build.props |
Все файлы свойств драйвера. Эти файлы содержат параметры по умолчанию для сборки драйвера. |
$(WDKContentRoot)\build*.targets |
Все файлы целевых объектов для конкретного драйвера. Этот файл определяет целевые объекты для сборки драйвера. |