Ensemble d'outils de plateforme
Le Kit de pilotes Windows (WDK) tire parti de la fonctionnalité d’ensemble d’outils de plateforme MSBuild pour fournir des outils et des bibliothèques spécifiques au développement de pilotes. La fonctionnalité d’ensemble d’outils de plateforme MSBuild est extensible. La version spécifique de l’ensemble d’outils de plateforme que vous souhaitez utiliser est contrôlée par une propriété MSBuild appelée PlatformToolset. Les projets peuvent basculer entre les outils et les bibliothèques en définissant la propriété PlatformToolset dans le fichier projet.
Le Kit de pilotes Windows (WDK) 8.1 fournit les ensembles d’outils de plateforme suivants pour le développement de pilotes.
PlatformToolset (WDK 8.1) | Utilisation |
---|---|
WindowsKernelModeDriver8.1 | Pour les pilotes et les composants en mode noyau. |
WindowsUserModeDriver8.1 | Pour les pilotes et composants en mode utilisateur. |
WindowsApplicationForDrivers8.1 | Pour tout type d’application. Cet ensemble d’outils de plateforme fournit une compatibilité avec les options de génération utilisées dans le Kit de pilotes Windows (WDK) pour Windows 7 (WDK 7.1), et utilise également les paramètres par défaut qui sont courants pour le développement d’applications en mode utilisateur qui interagissent avec les pilotes. Vous pouvez utiliser ce paramètre si vous migrez ou convertissez un projet qui a été créé à l’aide de WDK 7. |
Visual Studio 2013 (v120) | Utilisez pour tout type d’application Windows (par défaut). |
Le Kit de pilotes Windows (WDK) 8 a fourni les ensembles d’outils de plateforme suivants pour le développement de pilotes. Ces informations sont fournies à titre de référence uniquement.
PlatformToolset (WDK 8) | Utilisation |
---|---|
WindowsKernelModeDriver8.0 | Pour les pilotes et les composants en mode noyau. |
WindowsUserModeDriver8.0 | Pour les pilotes et composants en mode utilisateur. |
WindowsApplicationForDrivers8.0 | Pour tout type d’application. Cet ensemble d’outils de plateforme fournit une compatibilité avec les options de génération utilisées dans WDK pour Windows 7 (WDK 7.1). Vous pouvez utiliser ce paramètre si vous migrez ou convertissez un projet qui a été créé à l’aide de WDK 7. |
Visual Studio 2012 (v110) | Utilisez pour tout type d’application Windows (par défaut). |
Note Si vous créez un pilote à partir de l’un des modèles de pilotes Windows disponibles dans Visual Studio, la propriété PlatformToolset est définie pour vous. Vous pouvez également sélectionner PlatformToolset à l’aide de la page de propriétés du projet pilote dans Visual Studio. Définition de l’ensemble d’outils de plateforme dans Visual Studio
- Ouvrez les pages de propriétés de votre projet de pilote. Sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit) le projet de pilote dans Explorateur de solutions, puis sélectionnez Propriétés.
- Dans les pages de propriétés du projet de pilote, sélectionnez Propriétés de configuration , puis Général.
- Sélectionnez la propriété Platform Toolset pour le projet dans la liste déroulante.
Exemple : définition de la propriété PlatformToolset dans un fichier projet Visual Studio (.vcxproj)
L’exemple suivant montre comment la propriété PlatformToolset est définie dans le fichier projet.
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label="Configuration">
<ConfigurationType>Driver</ConfigurationType>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
</PropertyGroup>
La propriété ConfigurationType contrôle l’extension cible et le type de sortie du fichier binaire en cours de génération. Certaines des valeurs possibles pour cette propriété sont Application, DynamicLibrary, StaticLibrary et Utility.
WdK introduit une nouvelle valeur pour cette propriété appelée Driver afin de générer un pilote en mode noyau. Si vous définissez cette propriété sur Pilote, MSBuild génère un fichier de pilote avec .sys comme extension. Dans l’exemple, la propriété PlatformToolset est définie sur WindowsKernelModeDriver8.1 pour générer un pilote en mode noyau. WindowsKernelModeDriver8.1 est le seul ensemble d’outils de plateforme WDK qui nécessite le DriverConfigurationType. Dans cet exemple, driverType est défini sur KMDF.
À propos de la propriété PlatformToolset pour les pilotes
PlatformToolset est un ensemble de feuilles de propriétés, de cibles, d’outils et de tâches qui fonctionnent ensemble pour étendre et modifier une plateforme afin de générer des pilotes ou des composants en mode noyau pour cette plateforme particulière. Pour les pilotes et les composants et applications associés, la propriété PlatformToolset doit être définie sur WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 ou WindowsApplicationForDrivers8.1 dans le fichier projet. Ces ensembles d’outils de plateforme sont conçus pour étendre le compilateur et l’éditeur de liens de chaîne d’outils Visual Studio C\C++ existants avec d’autres outils de génération spécifiques à WDK et cibler les bibliothèques et en-têtes WDK. L’ensemble d’outils WindowsApplicationForDrivers8.1 fournit une compatibilité avec les paramètres d’option de génération qui étaient disponibles dans wdk pour Windows 7 (WDK 7.1), ainsi qu’avec les paramètres par défaut courants pour le développement d’applications en mode utilisateur qui interagissent avec les pilotes.
L’ensemble d’outils de plateforme a les paramètres et les cibles par défaut au niveau de la plateforme pour générer n’importe quel projet de pilote. Vous utilisez des commutateurs par défaut pour les outils de génération tels que le compilateur ou l’éditeur de liens, les informations système telles que les chemins INCLUDE ou LIBRARY pour wdk et les paramètres de fonctionnalité tels que les différentes propriétés à définir lors de l’utilisation de chaînes Unicode ou ANSI pour générer un projet de pilote. Si vous développez une application Windows pour le bureau, n’utilisez pas l’ensemble d’outils de plateforme WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 ou WindowsApplicationForDrivers8.1 . Utilisez plutôt l’ensemble d’outils de plateforme Visual Studio 2013 (v120).
Par défaut, la propriété PlatformToolset est Visual Studio 2013 (v120) pour les projets C++ win32 nouvellement créés et les projets convertis en Visual Studio 2013. Dans les deux cas, la propriété PlatformToolset n’est pas écrite dans le fichier projet.
Lorsque vous sélectionnez l’un des ensembles d’outils de plateforme pour les pilotes, les propriétés suivantes sont définies.
- ExecutablePath et NativeExecutablePath (PATH)
- IncludePath (INCLUDE)
- ReferencePath (LIBPATH)
- LibraryPath (LIB)
- SourcePath
- ExcludedPath
Note Lorsque UseEnv n’est pas défini sur TRUE, PATH, LIB, INCLUDE, LIBPATH est défini à partir des valeurs de propriété correspondantes dans l’ensemble d’outils de plateforme. Lorsque UseEnv a la valeur TRUE, comme dans l’ancien système de build, les valeurs des variables d’environnement pour PATH, INCLUDE, LIB et LIBPATH sont utilisées à la place.
Emplacement où le WDK installe les fichiers qui activent les ensembles d’outils de plateforme spécifiques au pilote
Le tableau suivant récapitule les emplacements où le WDK installe des fichiers pour activer les ensembles d’outils de plateforme pour le développement de pilotes.
Variable path | Description |
---|---|
$(VCTargetsPath) |
Par défaut, $(VCTargetsPath) est défini dans le Registre comme $(MSBuildExtensionsPath)<em><FOLDER><MSBUILDSYNTAXVERSION>) Le numéro de version est inclus dans le cas où un nouveau processus de génération est utilisé pour la même plateforme, qui a une nouvelle syntaxe et nécessite un MSBuild ultérieur. Le <DOSSIER> est le dossier Microsoft.Cpp - $(MSBuildExtensionsPath)\Microsoft.Cpp\4.0\v120. C’est ce qu’on appelle la version de syntaxe plutôt que la version des outils. Il s’agit de la version d’assembly du premier Microsoft.Build.Engine qui prend en charge toute la syntaxe nécessaire. Microsoft.Cpp indique le seul dossier dans lequel Visual Studio recherchera des plateformes. |
$(VCTargetsPath)\Platforms$(Platform)\ImportAfter.props |
Dossier facultatif qui ne contient normalement pas de fichiers. Vous pouvez personnaliser la plateforme en enregistrant les fichiers au format MSBuild dans ce dossier. Ils seront importés en bas du fichier de paramètres de plateforme, comme indiqué par le dossier dans lequel ils se trouvent actuellement. L’ordre dans lequel les fichiers sont importés à partir de cet emplacement n’est pas défini. Les fichiers créés par MSBuild sont $(VCTargetsPath)\Platforms$(Platform)\ImportAfter\Microsoft.Cpp. <Plateforme>. WindowsKernelModeDriver8.1.props et Microsoft.Cpp. <Plateforme>. WindowsUserModeDriver8.1.props, qui importe plusieurs fichiers d’accessoires spécifiques à WDK. |
$(VCTargetsPath)\Platforms$(Platform)\PlatformToolsets$(PlatformToolset)</p> |
Pour le WDK : $ (PlatformToolset) doit être défini sur WindowsKernelModeDriver8.1 pour générer des pilotes en mode noyau, défini sur WindowsUserModeDriver8.1 pour créer des pilotes en mode utilisateur et défini sur WindowsApplicationForDrivers8.1 pour la compatibilité avec les options de génération utilisées dans le WDK Windows 7 (WDK 7). Répertoire PlatformToolset Par exemple, C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1. Le répertoire PlatformToolsets vous permet d’ajouter d’autres types de fichiers ultérieurement, dans leur propre sous-dossier. |
Microsoft.Cpp.$(Platform).$(PlatformToolset).props |
Fichier props de l’ensemble d’outils de plateforme Importe les fichiers d’accessoires pour générer un pilote. Importe également le fichier d’props v120. |
Microsoft.Cpp.$(Platform).$(PlatformToolset).targets |
Fichier de cibles de l’ensemble d’outils de plateforme Importe les fichiers cibles pour générer un pilote. Ces fichiers contiennent des <balises UsingTask> à extraire dans les tâches WDK. Cette fonctionnalité importe également les cibles v120. |
$(WDKContentRoot)\build.props |
Tous les fichiers d’accessoires spécifiques au pilote. Ces fichiers contiennent des paramètres par défaut pour générer un pilote. |
$(WDKContentRoot)\build*.targets |
Tous les fichiers cibles spécifiques au pilote. Ce fichier identifie les cibles à générer un pilote. |