Partilhar via


Conjunto de ferramentas da plataforma

O Kit de Driver do Windows (WDK) aproveita o recurso de conjunto de ferramentas da plataforma MSBuild para fornecer ferramentas e bibliotecas específicas para o desenvolvimento de drivers. O recurso do 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 MSBuild chamada PlatformToolset. Os projetos podem alternar entre ferramentas e bibliotecas definindo a propriedade PlatformToolset no arquivo de projeto.

O Windows Driver Kit (WDK) 8.1 fornece os seguintes conjuntos de ferramentas de plataforma para o desenvolvimento de drivers.

PlatformToolset (WDK 8.1) Utilização
WindowsKernelModeDriver8.1 Para controladores e componentes em modo kernel.
WindowsUserModeDriver8.1 Para drivers e componentes de modo de usuário.
WindowsApplicationForDrivers8.1 Para qualquer tipo de aplicação. Esse conjunto de ferramentas de plataforma fornece compatibilidade com as opções de compilação usadas no Kit de Driver do Windows (WDK) para Windows 7 (WDK 7.1) e também usa as configurações padrão que são comuns para o desenvolvimento de aplicativos de modo de usuário que interagem com drivers. Você pode usar essa configuração se estiver migrando ou convertendo um projeto que foi criado usando o WDK 7.
Visual Studio 2013 (v120) Use para qualquer tipo de aplicativo do Windows (padrão).

O Windows Driver Kit (WDK) 8 forneceu os seguintes conjuntos de ferramentas de plataforma para desenvolvimento de drivers. Esta informação é fornecida apenas para referência.

PlatformToolset (WDK 8) Utilização
WindowsKernelModeDriver8.0 Para drivers e componentes de modo kernel.
WindowsUserModeDriver8.0 Para drivers e componentes de modo de usuário.
WindowsApplicationForDrivers8.0 Para qualquer tipo de aplicação. Este conjunto de ferramentas de plataforma fornece compatibilidade com as opções de compilação usadas no WDK para Windows 7 (WDK 7.1). Você pode usar essa configuração se estiver migrando ou convertendo um projeto que foi criado usando o WDK 7.
Visual Studio 2012 (v110) Use para qualquer tipo de aplicativo do Windows (padrão).

Observação Se você criar um driver a partir 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 de driver no Visual Studio. Definindo o conjunto de ferramentas da plataforma no Visual Studio

  1. Abra as páginas de propriedades do seu projeto de controlador. Selecione e segure (ou clique com o botão direito do mouse) o projeto de driver no Gerenciador de Soluções e selecione Propriedades.
  2. Nas páginas de propriedades do projeto de driver, selecione Propriedades de configuração e, em seguida, selecione Geral.
  3. Selecione a propriedade Platform Toolset para o projeto a partir da 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 introduz um novo valor para essa propriedade chamada Driver para criar um driver de modo kernel. Se você definir essa propriedade como Driver, MSBuild irá gerar um arquivo de driver com .sys como sua extensão. No exemplo, a propriedade PlatformToolset é definida como WindowsKernelModeDriver8.1 para criar um driver de 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 trabalham juntos para estender e modificar uma plataforma a fim de criar drivers ou componentes de 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 são projetados para estender o compilador e o vinculador de cadeia de ferramentas existentes do Visual Studio C\C++ com outras ferramentas de compilação 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 compilação que estavam disponíveis no WDK para Windows 7 (WDK 7.1) e também com as configurações padrão que são comuns para o desenvolvimento de aplicativos de modo de usuário que interagem com drivers.

O Conjunto de Ferramentas de Plataforma tem as definições padrão no nível da plataforma e os objetivos para compilar qualquer projeto de driver. Você usa opções padrão para ferramentas de compilação, 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 Win32 recém-criados e projetos que foram convertidos para Visual Studio 2013. Em ambos os casos, a propriedade PlatformToolset não é gravada no arquivo de projeto.

Quando o utilizador seleciona um dos conjuntos de ferramentas da plataforma para drivers, as propriedades a seguir são definidas.

  • ExecutablePath e NativeExecutablePath (PATH)
  • IncludePath (INCLUIR)
  • ReferencePath (LIBPATH)
  • LibraryPath (LIB)
  • SourcePath
  • ExcludedPath

Observação 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 é definido como TRUE, como no sistema de compilação antigo, os valores das variáveis de ambiente para PATH, INCLUDE, LIB e LIBPATH serão usados em vez disso.

Onde o WDK instala arquivos que habilitam os conjuntos de ferramentas de plataforma específicos do driver

A tabela a seguir resume os locais onde o WDK instala arquivos para habilitar os conjuntos de ferramentas da plataforma para o desenvolvimento de drivers.

Variável de caminho Descrição

$(VCTargetsPath)

Por padrão, $(VCTargetsPath) é definido no registro como $(MSBuildExtensionsPath)<em><FOLDER><MSBUILDSYNTAXVERSION>)

O número da versão é incluído no caso de um novo processo de compilação 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 de montagem do primeiro Microsoft.Build.Engine que suporta toda a sintaxe requerida. Microsoft.Cpp indica a única pasta onde o Visual Studio procurará plataformas.

$(VCTargetsPath)\Platforms$(Plataforma)\ImportAfter.props

Pasta opcional que normalmente não contém ficheiros. 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 no momento. A ordem em que os arquivos são importados desse local é indefinida. Os arquivos que o MSBuild cria são $(VCTargetsPath)\Platforms$(Platform)\ImportAfter\Microsoft.Cpp.<Platform>.WindowsKernelModeDriver8.1.props e Microsoft.Cpp.<Platform>.WindowsUserModeDriver8.1.props, que importam vários arquivos prop específicos do WDK.

$(VCTargetsPath)\Platforms$(Plataforma)\PlatformToolsets$(PlatformToolset)</p>

Para o WDK:

O $(PlatformToolset) deve ser definido como WindowsKernelModeDriver8.1 para criar drivers de modo kernel, definido como WindowsUserModeDriver8.1 para criar drivers de modo de usuário e definido como WindowsApplicationForDrivers8.1 para compatibilidade com as opções de compilação 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 mais tarde – em sua própria subpasta.

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

Ficheiro de Propriedades da Plataforma de Ferramentas

Importa arquivos props para criar um driver. Também importa o arquivo de props v120.

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

Arquivo de destinos do conjunto de ferramentas da plataforma

Importa arquivos de destino para criar um driver. Esses ficheiros contêm <tags UsingTask> para incorporar as tarefas do WDK. Este recurso também importa alvos v120.

$(WDKContentRoot)\build.props

Todos os ficheiros de propriedades 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.