Conjunto de ferramentas da plataforma
O WDK (Windows Driver Kit) aproveita o recurso de conjunto de ferramentas da plataforma MSBuild para fornecer ferramentas e bibliotecas específicas para o desenvolvimento do driver. O recurso de conjunto de ferramentas da plataforma MSBuild é extensível. A versão específica do conjunto de ferramentas de plataforma que você deseja usar é controlada por uma propriedade do MSBuild chamada PlatformToolset. Os projetos podem alternar entre ferramentas e bibliotecas definindo a propriedade PlatformToolset no arquivo de projeto.
O WDK (Windows Driver Kit) 8.1 fornece os seguintes conjuntos de ferramentas de plataforma para desenvolvimento de driver.
PlatformToolset (WDK 8.1) | Uso |
---|---|
WindowsKernelModeDriver8.1 | Para drivers e componentes do modo kernel. |
WindowsUserModeDriver8.1 | Para drivers e componentes do modo de usuário. |
WindowsApplicationForDrivers8.1 | Para qualquer tipo de aplicativo. Este conjunto de ferramentas de plataforma fornece compatibilidade com as opções de build usadas no WDK (Windows Driver Kit) para Windows 7 (WDK 7.1) e também usa as configurações padrão que são comuns para o desenvolvimento de aplicativos no modo de usuário que interagem com drivers. Você poderá usar essa configuração se estiver migrando ou convertendo um projeto criado usando o WDK 7. |
Visual Studio 2013 (v120) | Use para qualquer tipo de aplicativo do Windows (padrão). |
O WDK (Windows Driver Kit) 8 forneceu os seguintes conjuntos de ferramentas de plataforma para desenvolvimento de driver. Essas informações são fornecidas somente para referência.
PlatformToolset (WDK 8) | Uso |
---|---|
WindowsKernelModeDriver8.0 | Para drivers e componentes do modo kernel. |
WindowsUserModeDriver8.0 | Para drivers e componentes do modo de usuário. |
WindowsApplicationForDrivers8.0 | Para qualquer tipo de aplicativo. Esse conjunto de ferramentas de plataforma fornece compatibilidade com as opções de build usadas no WDK para Windows 7 (WDK 7.1). Você poderá usar essa configuração se estiver migrando ou convertendo um projeto criado usando o WDK 7. |
Visual Studio 2012 (v110) | Use para qualquer tipo de aplicativo do Windows (padrão). |
Nota Se você criar um driver de um dos modelos de driver do Windows disponíveis no Visual Studio, a propriedade PlatformToolset será definida para você. Você também pode selecionar o PlatformToolset usando a página de propriedades do projeto do driver no Visual Studio. Definindo o conjunto de ferramentas de plataforma no Visual Studio
- Abra as páginas de propriedades do projeto do driver. Selecione e segure (ou clique com o botão direito do mouse) no projeto do driver no Gerenciador de Soluções e selecione Propriedades.
- Nas páginas de propriedades do projeto do driver, selecione Propriedades de Configuração e, em seguida, selecione Geral.
- Selecione a propriedade Conjunto de Ferramentas de Plataforma para o projeto na lista suspensa.
Exemplo – Definindo a propriedade PlatformToolset em um arquivo de projeto do Visual Studio (.vcxproj)
O exemplo a seguir mostra como a propriedade PlatformToolset é definida no arquivo de projeto.
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label="Configuration">
<ConfigurationType>Driver</ConfigurationType>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
</PropertyGroup>
A propriedade ConfigurationType controla a extensão de destino e o tipo de saída para o binário que está sendo criado. Alguns dos valores possíveis para essa propriedade são Application, DynamicLibrary, StaticLibrary e Utility.
O WDK apresenta um novo valor para essa propriedade chamada Driver para criar um driver no modo kernel. Se você definir essa propriedade como Driver, o MSBuild gerará um arquivo de driver com .sys como sua extensão. No exemplo, a propriedade PlatformToolset é definida como WindowsKernelModeDriver8.1 para criar um driver no modo kernel. WindowsKernelModeDriver8.1 é o único conjunto de ferramentas da plataforma WDK que requer o DriverConfigurationType. Neste exemplo, o DriverType é definido como KMDF.
Sobre a propriedade PlatformToolset para drivers
O PlatformToolset é um conjunto de folhas de propriedades, destinos, ferramentas e tarefas que funcionam em conjunto para estender e modificar uma plataforma para criar drivers ou componentes do modo kernel para essa plataforma específica. Para drivers e componentes e aplicativos relacionados, a propriedade PlatformToolset deve ser definida como WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 ou WindowsApplicationForDrivers8.1 no arquivo de projeto. Esses conjuntos de ferramentas de plataforma foram projetados para estender o compilador e o vinculador da cadeia de ferramentas do Visual Studio C\C++ existentes com outras ferramentas de build específicas do WDK e direcionar os cabeçalhos e bibliotecas do WDK. O conjunto de ferramentas WindowsApplicationForDrivers8.1 fornece compatibilidade com as configurações de opção de build que estavam disponíveis no WDK para Windows 7 (WDK 7.1) e também as configurações padrão que são comuns para o desenvolvimento de aplicativos no modo de usuário que interagem com drivers.
O Conjunto de Ferramentas de Plataforma tem as configurações e os destinos padrão no nível da plataforma para criar qualquer projeto de driver. Você usa opções padrão para ferramentas de build, como o compilador ou vinculador, informações do sistema, como os caminhos INCLUDE ou LIBRARY para o WDK e configurações de recursos, como várias propriedades a serem definidas ao usar cadeias de caracteres Unicode ou ANSI para criar um projeto de driver. Se você estiver desenvolvendo um aplicativo do Windows para a área de trabalho, não use o conjunto de ferramentas da plataforma WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 ou WindowsApplicationForDrivers8.1 . Em vez disso, use o conjunto de ferramentas da plataforma Visual Studio 2013 (v120).
Por padrão, a propriedade PlatformToolset é Visual Studio 2013 (v120) para projetos C++ do modo de usuário do Win32 recém-criados e projetos que foram convertidos em Visual Studio 2013. Em ambos os casos, a propriedade PlatformToolset não é gravada no arquivo de projeto.
Quando você seleciona um dos conjuntos de ferramentas de plataforma para drivers, as propriedades a seguir são definidas.
- ExecutablePath e NativeExecutablePath (PATH)
- IncludePath (INCLUDE)
- ReferencePath (LIBPATH)
- LibraryPath (LIB)
- SourcePath
- ExcludedPath
Nota Quando UseEnv não estiver definido como TRUE, PATH, LIB, INCLUDE, LIBPATH será definido a partir dos valores de propriedade correspondentes no conjunto de ferramentas da plataforma. Quando UseEnv for definido como TRUE, como no sistema de build antigo, os valores das variáveis de ambiente para PATH, INCLUDE, LIB e LIBPATH serão usados.
Onde o WDK instala arquivos que habilitam os conjuntos de ferramentas de plataforma específicos do driver
A tabela a seguir resume os locais em que o WDK instala arquivos para habilitar os conjuntos de ferramentas de plataforma para o desenvolvimento de driver.
Variável path | Descrição |
---|---|
$(VCTargetsPath) |
Por padrão, $(VCTargetsPath) é definido no registro como $(MSBuildExtensionsPath)<em><FOLDER<>MSBUILDSYNTAXVERSION)> O número de versão é incluído no caso de um novo processo de build ser usado para a mesma plataforma, que tem nova sintaxe e requer um MSBuild posterior. A <PASTA> é a pasta Microsoft.Cpp – $(MSBuildExtensionsPath)\Microsoft.Cpp\4.0\v120. Isso é chamado de versão de sintaxe em vez de versão de ferramentas. É a versão do assembly do primeiro Microsoft.Build.Engine que dá suporte a toda a sintaxe necessária. Microsoft.Cpp indica a única pasta em que o Visual Studio procurará plataformas. |
$(VCTargetsPath)\Platforms$(Platform)\ImportAfter.props |
Pasta opcional que normalmente não contém arquivos. Você pode personalizar a plataforma salvando arquivos de formato MSBuild nesta pasta. Eles serão importados na parte inferior do arquivo de configurações da plataforma, conforme indicado pela pasta em que estão atualmente. A ordem na qual os arquivos são importados desse local é indefinida. Os arquivos que o MSBuild cria são $(VCTargetsPath)\Platforms$(Platform)\ImportAfter\Microsoft.Cpp. <Plataforma>. WindowsKernelModeDriver8.1.props e Microsoft.Cpp. <Plataforma>. WindowsUserModeDriver8.1.props, que importam vários arquivos de props específicos do WDK. |
$(VCTargetsPath)\Platforms$(Platform)\PlatformToolsets$(PlatformToolset)</p> |
Para o WDK: O $(PlatformToolset) deve ser definido como WindowsKernelModeDriver8.1 para criar drivers do modo kernel, definido como WindowsUserModeDriver8.1 para a criação de drivers de modo de usuário e definido como WindowsApplicationForDrivers8.1 para compatibilidade com as opções de build usadas no WDK do Windows 7 (WDK 7). Diretório PlatformToolset Por exemplo, C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1. O diretório PlatformToolsets permite que você adicione outros tipos de arquivos posteriormente em sua própria subpasta. |
Microsoft.Cpp.$(Platform).$(PlatformToolset).props |
Arquivo de Props do Conjunto de Ferramentas da Plataforma Importa arquivos props para criar um driver. Também importa o arquivo de adereços v120. |
Microsoft.Cpp.$(Platform).$(PlatformToolset).targets |
Arquivo de destinos do Conjunto de Ferramentas da Plataforma Importa arquivos de destino para criar um driver. Esses arquivos contêm <marcas UsingTask> para efetuar pull das tarefas do WDK. Esse recurso também importa destinos v120. |
$(WDKContentRoot)\build.props |
Todos os arquivos de props específicos do driver. Esses arquivos contêm configurações padrão para criar um driver. |
$(WDKContentRoot)\build*.targets |
Todos os arquivos de destinos específicos do driver. Esse arquivo identifica os destinos para criar um driver. |