Skip to main content

XBOX PC Remote Iteration API

Fornece funções para copiar e excluir arquivos e para iniciar, retomar e encerrar jogos em dispositivos remotos baseados no Windows.

Visão geral

A XBOX PC Remote Iteration API habilita fluxos de trabalho de desenvolvimento baseados em PC voltados para dispositivos Windows remotos. Ela fornece um conjunto de funções C para transferir arquivos de jogo entre um PC local e um dispositivo remoto, além de iniciar e gerenciar processos de jogo no dispositivo remoto. A API foi projetada para ciclos de iteração rápidos durante o desenvolvimento de jogos, permitindo que os desenvolvedores criem builds localmente e implantem e testem em hardware remoto sem gerenciamento manual de arquivos.

Disponibilidade da API

Esta referência descreve a API mais recente. A menos que uma versão posterior seja especificada, as declarações públicas da API estão disponíveis no RIT 0.0.8-Preview, a versão inicial da API pública. Introduzida em identifica quando uma declaração foi adicionada. Suporte a partir de identifica quando uma opção declarada passou a funcionar. A introdução de uma declaração não implica que retornos de chamada ou configurações atualmente não usados estejam implementados. As seções Histórico de alterações descrevem alterações nas declarações ou no comportamento da API, não correções na documentação. Os rótulos de versão usam a versão do WinGet. A tabela de versões de lançamento mapeia cada rótulo para o pacote NuGet da API e para as versões da ferramenta de linha de comando.

Quando usar

  • Implantar builds de jogos de um PC local para um dispositivo Windows remoto durante o desenvolvimento.
  • Copiar arquivos atualizados (cópia delta) para um dispositivo remoto para minimizar os tempos de transferência durante builds iterativos.
  • Remover a saída de build obsoleta de um dispositivo remoto antes de implantar um novo build.
  • Iniciar, suspender, retomar e encerrar processos de jogo em um dispositivo remoto a partir do seu PC de desenvolvimento.
  • Automatizar fluxos de trabalho de build-implantação-teste em pipelines de integração contínua voltados para dispositivos Windows remotos.
  • Criar ou integrar ferramentas personalizadas do estúdio para implantação em dispositivos Windows remotos, localmente ou em laboratórios de teste.

Quando NÃO usar

  • Não use esta API para implantação de varejo ou de produção de jogos em consoles de usuários finais.
  • Não use esta API para transferir arquivos entre dois dispositivos remotos; uma das extremidades deve ser o PC local.
  • Não use esta API se o dispositivo remoto não tiver sido emparelhado e configurado para desenvolvimento remoto.

Pré-requisitos

  • Pacote NuGet: Microsoft.GDK.RemoteIterationClientApi versão 0.1.0-preview.26.3.6001 ou posterior para a API base. APIs e opções posteriores exigem as versões identificadas em suas páginas de referência.
  • Emparelhamento de dispositivos: o PC local e o dispositivo remoto devem estar emparelhados e confiar mutuamente um no outro, usando o aplicativo XBOX PC Toolbox para provisioná-los.
  • wdEndpoint: o wdEndpoint deve estar instalado e em execução no dispositivo remoto. A configuração do XBOX PC Toolbox instala e configura o wdEndpoint por padrão.
  • Cabeçalho e biblioteca: inclua WdRemoteIteration.h e vincule a wdremoteapi.lib.

Exemplo

O Remote Iteration Tools Sample é um aplicativo WPF em C# que demonstra como implantar, iniciar, retomar e encerrar jogos em um dispositivo remoto e cancelar uma implantação em andamento.

Funções

Estruturas

Enumerações

Retornos de chamada

Modelo de threading

A XBOX PC Remote Iteration API foi projetada para operações de cópia de thread único. As seguintes regras se aplicam:
  • Uma cópia por vez. Somente uma chamada de WdRemoteCopy pode estar ativa a qualquer momento, independentemente do dispositivo de destino ou do caminho de destino. Chamar WdRemoteCopy enquanto outra cópia já estiver em andamento resulta em comportamento indefinido.
  • Outras funções são seguras durante uma cópia. Funções como WdLaunchRemoteGame, WdTerminateRemoteGame, WdResumeRemoteGame e WdRegisterRemoteXboxGame podem ser chamadas a partir de threads separados enquanto uma cópia está em andamento.
  • As operações remotas são de bloqueio. Funções como WdRemoteCopy e WdDeleteRemoteFiles ficam bloqueadas aguardando o resultado da operação, um erro ou um cancelamento observado. WdCancelRemoteCopy e WdCancelRemoteDelete não são de bloqueio.
  • O cancelamento é thread-safe. WdCancelRemoteCopy e WdCancelRemoteDelete podem ser chamadas a partir de outro thread para sinalizar o cancelamento.
  • Nenhum estado de conexão entre operações remotas. Cada chamada de operação remota estabelece sua própria conexão com o dispositivo remoto. Não há sessão persistente; por exemplo, se a conexão cair após a conclusão de WdLaunchRemoteGame, você ainda poderá chamar WdTerminateRemoteGame assim que a conectividade for restaurada.

Comportamento de repetição

A XBOX PC Remote Iteration API não repete automaticamente operações com falha no nível da API. Se uma operação falhar devido a uma interrupção de rede ou outro erro transitório, o chamador será responsável por tentar novamente.
  • Nenhuma repetição automática. Se uma operação de cópia falhar (por exemplo, devido à perda de conectividade de rede), WdRemoteCopy retornará um erro. O chamador deverá invocar a função novamente para tentar outra vez.
  • Nenhum tempo limite configurável. WdRemoteCopy não impõe um tempo limite à operação de cópia. Ela continua transferindo até a conclusão, até ocorrer um erro ou até ser cancelada por meio de WdCancelRemoteCopy. Em condições de rede degradadas, as transferências podem prosseguir muito lentamente em vez de falhar.
  • O progresso é preservado em caso de falha. Os arquivos copiados com êxito antes de uma falha permanecem no destino. Quando o chamador tenta a cópia novamente, o comportamento de cópia delta garante que somente arquivos incompletos ou ausentes sejam transferidos; os arquivos copiados anteriormente não são transferidos novamente.
  • Erros de espaço em disco são relatados. Se o dispositivo de destino ficar sem espaço em disco durante uma cópia, a operação falhará com um erro em vez de travar.
  • Resiliência no nível de transporte. A camada de transporte subjacente lida com a retransmissão de pacotes de baixo nível de forma transparente. Pequenas falhas de rede (como a perda de um único pacote) não fazem a operação falhar. No entanto, uma perda prolongada de conectividade acabará causando um erro.
  • Padrão de repetição recomendado. Após uma falha de WdRemoteCopy, basta chamar WdRemoteCopy novamente com os mesmos parâmetros. O comportamento de cópia delta minimiza o trabalho redundante transferindo apenas os arquivos ausentes ou incompletos no destino.

Cancelamento

A XBOX PC Remote Iteration API fornece um modelo de cancelamento baseado em identificador para operações de cópia e exclusão de longa duração. O mesmo tipo WdCancellationHandle é usado para ambas. O chamador é responsável pelo ciclo de vida do identificador:
  1. Crie um identificador chamando WdCreateCancellationHandle.
  2. Passe o identificador para WdRemoteCopy por meio do parâmetro cancellationHandle.
  3. A partir de um thread separado, chame WdCancelRemoteCopy com o identificador para cancelar a cópia em andamento. WdCancelRemoteCopy não é de bloqueio. Depois que o cancelamento for sinalizado, WdRemoteCopy poderá retornar S_OK ou uma falha.
  4. Depois que WdRemoteCopy retornar, feche o identificador chamando WdCloseCancellationHandle.
Se vários componentes precisarem referenciar o mesmo identificador de cancelamento, use WdDuplicateCancellationHandle para duplicá-lo. Cada cópia deve ser fechada de forma independente. WdDeleteRemoteFiles segue o mesmo modelo baseado em identificador, usando WdCancelRemoteDelete para sinalizar o cancelamento. O cancelamento observado interrompe a espera do cliente e retorna S_OK sem confirmar a conclusão no ponto de extremidade. A exclusão já iniciada no ponto de extremidade continua de forma independente; o cancelamento não restaura os itens excluídos.

Raízes comuns

Raízes comuns são locais conhecidos pré-configurados no dispositivo remoto para os quais os jogos normalmente são copiados ou a partir dos quais são iniciados. Em vez de especificar um caminho absoluto completo, os chamadores podem se referir a esses locais por alias usando o campo commonRootAlias em WdCopyOptions ou WdLaunchOptions. Para operações de cópia, o caminho remoto é destinationPath para CopyTo e sourcePath para CopyFrom. Se esse caminho for absoluto, o commonRootAlias será ignorado. Quando for relativo, ele será resolvido em relação à raiz comum identificada pelo alias. Se nenhum alias for especificado, o local padrão da raiz comum será usado.

Códigos de erro

Para obter uma lista completa dos códigos de erro específicos da API, incluindo descrições, causas raiz e orientações de solução de problemas, confira Códigos de erro da XBOX PC Remote Iteration API.

Controle de versão, manutenção e distribuição

Para obter os números de versão do NuGet da API, do WinGet e dos executáveis, confira Versões de lançamento do XBOX PC Remote Iteration. A API do Remote Iteration Tools (RIT) segue o Versionamento Semântico 2.0.0 (MAJOR.MINOR.PATCH) para fornecer expectativas claras sobre compatibilidade, atualizações e suporte de longo prazo. Todas as bibliotecas públicas da API do RIT são distribuídas via NuGet, permitindo o gerenciamento de dependências e fluxos de trabalho de atualização padrão.

Modelo de controle de versão

As expectativas de compatibilidade abaixo se aplicam a versões que não são de visualização. Para pacotes de visualização, consulte o histórico de alterações específico da API para verificar alterações de declaração, layout e comportamento antes de atualizar.

Versões PATCH

As atualizações PATCH fornecem correções de bugs e melhorias de confiabilidade. Essas atualizações não alteram os contratos da API nem o comportamento em tempo de execução e são atualizações seguras de substituição direta. Atualizar para uma versão PATCH mais recente não requer alterações de código.

Versões MINOR

As atualizações MINOR introduzem novas APIs ou evoluem a funcionalidade existente de forma compatível com versões anteriores. Quando houver planos de alterar ou remover APIs no futuro, elas serão claramente marcadas como preteridas, dando aos desenvolvedores tempo para migrar. As atualizações de dependências são revisadas para garantir a compatibilidade dentro da mesma versão MAJOR.

Versões MAJOR

As atualizações MAJOR representam alterações interruptivas intencionais. Essas versões podem exigir alterações de código ou atualizações de dependências e são acompanhadas de orientações claras de migração. A atualização para uma nova versão MAJOR é tratada como uma decisão explícita e opcional, alinhada aos ciclos normais de validação e lançamento.

Modelo de manutenção e suporte

Depois que uma versão MAJOR ou MINOR da API do RIT é lançada publicamente, ela entra em um período de manutenção ativa com uma janela de suporte prevista de aproximadamente 18 meses. Durante esse período:
  • Versões PATCH são aprovadas para corrigir bugs e melhorar a confiabilidade das versões com suporte.
  • À medida que novas versões são lançadas e patches e pequenas alterações melhoram as versões existentes e corrigem bugs, várias versões MAJOR e MINOR podem receber manutenção simultaneamente.
  • Versões PATCH não estendem o tempo de manutenção de uma versão MAJOR ou MINOR.
  • Novos recursos são introduzidos somente em versões MINOR ou MAJOR mais recentes e não são portados para versões anteriores.
Após o término da janela de manutenção, a versão é desativada e espera-se que os desenvolvedores migrem para uma versão MAJOR ou MINOR mais recente com suporte.

Expectativas de atualização

Recomenda-se que os desenvolvedores se mantenham atualizados dentro de uma versão MAJOR, adotando as atualizações PATCH e MINOR. As atualizações de versão MAJOR devem ser planejadas e validadas explicitamente para garantir a compatibilidade com os fluxos de trabalho de produção.

Compatibilidade de versões entre a API e o wdEndpoint

A biblioteca de cliente da API do RIT e o wdEndpoint em execução no dispositivo remoto devem sempre ser mantidos em versões compatíveis. Usar uma versão mais recente da API com um wdEndpoint mais antigo pode resultar em erros E_SERVERTOOOLD ou em comportamento inesperado. Para garantir o comportamento correto, a compatibilidade total com versões anteriores e o suporte aos recursos mais recentes da API, é recomendável atualizar o wdEndpoint em todos os dispositivos remotos sempre que a biblioteca de cliente da API for atualizada. Consulte as notas de versão do pacote NuGet para conhecer os requisitos mínimos de versão do wdEndpoint.

Requisitos

Documentação conceitual

Confira também

Last modified on October 6, 2026