Compartilhar via


Laboratório 1f: adicionar serviços Win32 a uma imagem

Windows 10 IoT Core dá suporte à adição de um Serviço Win32 NT à sua imagem.

Pré-requisitos/requisitos

Verifique se você criou uma imagem básica de Criar uma imagem básica.

Você precisará das seguintes ferramentas instaladas para concluir esta seção:

  • Kit de Avaliação e Implantação do Windows (Windows ADK)

Observação

A versão do ADK usada deve corresponder à versão dos Pacotes do IoT Core usada abaixo.

  • Pacotes do Windows 10 IoT Core
  • Ambiente do PowerShell do IoT Core
  • ADK do IoT Core Add-Ons
  • Um editor de texto como o Bloco de Notas ou o VS Code

Adicionar um aplicativo do Serviço Win32 ao build do pacote

Para incluir seu Aplicativo de Serviço Win32 no processo de build de imagem FFU, primeiro você deve adicionar o arquivo .EXE para que ele possa ser empacotado (usando buildpkg).

  1. Crie um subdiretório para seu Aplicativo de Serviço Win32 em C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages. Isso conterá os arquivos XML e EXE a serem incluídos ao compilar a imagem. Por exemplo, consulte o subdiretório AzureDM.Services em C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages\AzureDM.Services para obter um exemplo de trabalho.

  2. Crie um arquivo XML intitulado <your Win32 Service App Name>.wm.xml no subdiretório que você criou na Etapa 1. Esse arquivo especificará como o pacote será criado. Aqui está um exemplo de como esse arquivo deve ser (você substituiria as entradas apropriadas por suas informações do Aplicativo de Serviço Win32):

<?xml version="1.0" encoding="utf-8"?>
<identity xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="Services"
namespace="AzureDM"
owner="$(OEMNAME)"
legacyName="$(OEMNAME).<your Win32 Service App Name>.Services" xmlns="urn:Microsoft.CompPlat/ManifestSchema.v1.00">
<onecorePackageInfo
targetPartition="MainOS"
releaseType="Production"
ownerType="OEM" />
<files>
<file
destinationDir="$(runtime.system32)"
source="<your Win32 Service App Name executable filename>" />
</files>
<service
name="<your Win32 Service App Name>"
start="auto"
type="win32OwnProcess"
objectName="LocalSystem"
errorControl="normal"
displayName="<your Win32 Service App Display Name>"
description="<your Win32 Service App Description>"
imagePath="<path and file name of your Win32 Service App>">
<failureActions
resetPeriod="86400">
<actions>
<action
type="restartService"
delay="1000" />
<action
type="restartService"
delay="1000" />
<action
type="restartService"
delay="1000" />
<action
type="none"
delay="0" />
</actions>
</failureActions>
</service>
</identity>

Observação

A <service> área no arquivo XML especifica informações específicas do serviço Win32. Se você estiver adicionando um aplicativo Win32 (como um aplicativo de console), esta seção poderá ser omitida.

  1. Adicione o arquivo EXE ao subdiretório da Etapa 1. Este é o executável do aplicativo do Serviço Win32.

Empacotar o aplicativo de serviço Win32

A próxima etapa é empacotar o arquivo do Aplicativo de Serviço Win32, que permitirá compilá-lo usando o Windows ADK (quando você compilar a imagem FFU).

  1. Abra IoTCorePShell.cmd no workspace. Ele deve solicitar que você execute como administrador.
  2. Compilar o pacote em um arquivo de .CAB (usando New-IoTCabPackage)
New-IoTCabPackage <your Win32 Service App Name>
(or) buildpkg <your Win32 Service App Name>

Isso criará o pacote em um arquivo .CAB no \Build\<arch>\pkgs subdiretório em seu workspace.

Atualizar arquivos de configuração do projeto

Agora você pode atualizar seus arquivos de configuração de produto para incluir seu aplicativo na compilação de imagem FFU.

  1. Adicione a ID do recurso para o pacote do aplicativo usando Add-IoTProductFeature, substituindo <your Win32 service app name> por um identificador para seu aplicativo de serviço Win32:
Add-IoTProductFeature <product name> Test <your Win32 service app name> -OEM
or addfid <product name> Test <your Win32 service app name> -OEM

Isso adiciona um FeatureID correspondente ao identificador que você escolheu para seu aplicativo de serviço Win32.

Compilar e testar imagem

Crie a imagem FFU novamente, conforme especificado em Criar uma imagem básica do IoT Core. Você só deve executar o comando New-IoTFFUImage :

New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test 

Depois que o arquivo FFU tiver sido criado (agora ele deve incluir seu aplicativo), você poderá exibi-lo em seu dispositivo de hardware, conforme especificado em Flashing a Windows IoT Core Image.

Próximas etapas

Laboratório 1g: criar uma imagem de varejo