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


Набор инструментов платформы

Комплект драйверов 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

  1. Откройте страницы свойств для проекта драйвера. Выберите и удерживайте (или щелкните правой кнопкой мыши) проект драйвера в обозревателе решений и выберите "Свойства".
  2. На страницах свойств проекта драйвера выберите "Свойства конфигурации " и выберите "Общие".
  3. Выберите свойство "Набор инструментов платформы " для проекта в раскрывающемся списке.

Пример. Задание свойства 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, а также для настроек функций, таких как различные свойства, заданные при использовании строк Unicode или ANSI для создания проекта драйвера. Если вы разрабатываете приложение Windows для рабочего стола, не используйте набор инструментов платформы WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 или WindowsApplicationForDrivers8.1 . Вместо этого используйте набор инструментов платформы Visual Studio 2013 (версии 120 ).

По умолчанию свойство PlatformToolsetVisual Studio 2013 (версия 120) для недавно созданных проектов и проектов C++ в режиме пользователя Win32, которые были преобразованы в Visual Studio 2013. В обоих случаях свойство PlatformToolset не записывается в файл проекта.

При выборе одного из наборов инструментов платформы для драйверов задаются следующие свойства.

  • ИсполняемыйПуть и НативныйИсполняемыйПуть (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.<Platform>.WindowsKernelModeDriver8.1.props и Microsoft.Cpp.<Platform>.WindowsUserModeDriver8.1.props, которые импортируют несколько файлов 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\Platform\Win32\PlatformToolsets\WindowsKernelModeDriver8.1.

Каталог PlatformToolsets позволяет в дальнейшем добавлять другие типы файлов – в их собственную вложенную папку.

Microsoft.Cpp.$(Platform).$(PlatformToolset).props

Файл props набора инструментов платформы

Импортирует файлы конфигурации для создания драйвера. Также импортирует файл props v120.

Microsoft.Cpp.$(Platform).$(PlatformToolset).targets

Файл целевых объектов набора инструментов платформы

Импортирует целевые файлы для сборки драйвера. Эти файлы содержат <теги UsingTask> для подключения задач WDK. Эта функция также импортирует целевые объекты версии 120.

$(WDKContentRoot)\build.props

Все файлы конфигурации драйвера типа props. Эти файлы содержат параметры по умолчанию для создания драйвера.

$(WDKContentRoot)\build*.targets

Файл всех целевых объектов драйвера. Этот файл определяет целевые объекты для создания драйвера.