> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XGameStreamingGetAssociatedFrame

> XGameStreamingGetAssociatedFrame

# XGameStreamingGetAssociatedFrame

<Info>**En desuso.** Esta API está en desuso a partir de la versión 2604 del GDK y se quitará en una versión futura del GDK. No hay ninguna API de reemplazo: los títulos deben usar [XGameStreamingGetStreamAddedLatency](/reference/system/xgamestreaming/functions/xgamestreaminggetstreamaddedlatency) en su lugar para realizar ajustes de juego que tengan en cuenta la latencia.</Info>

Obtiene el token de la canalización de fotogramas a partir de una lectura de entrada específica.

## Sintaxis

```cpp theme={null}
HRESULT XGameStreamingGetAssociatedFrame(  
         IGameInputReading* gamepadReading,  
         D3D12XBOX_FRAME_PIPELINE_TOKEN* framePipelineToken  
)  
```

### Parámetros

*gamepadReading*   \_In\_\
Tipo: IGameInputReading\*

La lectura del mando que se está consultando.

*framePipelineToken*   \_Out\_\
Tipo: D3D12XBOX\_FRAME\_PIPELINE\_TOKEN\*

El token de la canalización de fotogramas asociado al fotograma que se mostraba en el dispositivo del cliente cuando el jugador realizó la entrada. Este token de canalización corresponde a la llamada a PresentX cuando el juego lo presentó y se envió al dispositivo cliente.

### Valor devuelto

Tipo: HRESULT

Devuelve **S\_OK** si se realiza correctamente; de lo contrario, devuelve un código de error.

#### Posibles errores

| Código de error                              | Valor de error | Motivo del error                                                                                                                                                                                      |
| -------------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| E\_GAMESTREAMING\_NOT\_INITIALIZED           | 0x89245400     | El entorno de ejecución de XGameStreaming no se ha inicializado. Llame a [XGameStreamingInitialize](/reference/system/xgamestreaming/functions/xgamestreaminginitialize) antes de llamar a otras API. |
| E\_GAMESTREAMING\_NO\_DATA                   | 0x89245402     | Los datos solicitados no están disponibles. Es posible que los datos estén disponibles más adelante.                                                                                                  |
| E\_GAMESTREAMING\_NOT\_STREAMING\_CONTROLLER | 0x89245404     | La lectura actual no procede de un mando de streaming.                                                                                                                                                |

## Comentarios

Cuando un jugador está transmitiendo un juego, se puede utilizar `XGameStreamingGetAssociatedFrame` si el juego necesita cambiar su comportamiento en función del fotograma concreto que se mostraba en el dispositivo del jugador cuando se realizó la entrada.

Esto permitiría al juego tomar sus decisiones de simulación basándose en el fotograma que el jugador vio en el momento de la entrada, no en el actual.

`XGameStreamingGetAssociatedFrame` solo puede proporcionar información al juego sobre el fotograma que se muestra cuando se crea una nueva lectura de entrada. En caso de que el juego necesite determinar qué se estaba mostrando cuando el jugador puede no haber realizado una entrada, el juego debe utilizar [XGameStreamingGetLastFrameDisplayed](/reference/system/xgamestreaming/functions/xgamestreaminggetlastframedisplayed).

## Ejemplo

```C++ theme={null}
// In this example, when processing input, the game would like to pass along the frame 
// that was being displayed to the player at the time of input so that their simulation
// engine can take that into account.

// The framePipelineToken was initially captured at the callback of WaitFrameEventX

void Game::Update(DX::StepTimer const& timer)
{
    IGameInputReading* reading;
    if (SUCCEEDED(g_gameInput->GetCurrentReading(GameInputKindGamepad, g_gamepad, &reading)))
    {
        D3D12XBOX_FRAME_PIPELINE_TOKEN framePipelineToken = D3D12XBOX_FRAME_PIPELINE_TOKEN_NULL;        

        if SUCCEEDED(XGameStreamingGetAssociatedFrame(&reading, &framePipelineToken)) 
        {
            SimulateBasedOnInputAndFrameDisplayed(reading, framePipelineToken);
        }
        else 
        {
            // simulate based on current frame
            SimulateBasedOnInput(reading);
        }

        reading->Release();
    }
}

```

## Requisitos

**Encabezado:** xgamestreaming.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Documentación conceptual

* [Análisis en profundidad de la compensación de latencia en el streaming de juegos](/build/core-features/common/game-streaming/game-streaming-latency-compensation-deep-dive)

## Consulte también

[XGameStreamingGetLastFrameDisplayed](/reference/system/xgamestreaming/functions/xgamestreaminggetlastframedisplayed)\
[XGameStreaming](/reference/system/xgamestreaming/xgamestreaming_members#Latency)\
[Información general sobre la compensación de latencia en el streaming de juegos](/build/core-features/common/game-streaming/game-streaming-latency-compensation-overview)


## Related topics

- [XGameStreamingGetLastFrameDisplayed](/es/reference/system/xgamestreaming/functions/xgamestreaminggetlastframedisplayed.md)
- [Análisis en profundidad de la compensación de latencia en game streaming](/es/build/core-features/common/game-streaming/game-streaming-latency-compensation-deep-dive.md)
- [XGameStreaming](/es/reference/system/xgamestreaming/xgamestreaming_members.md)
- [XGameStreamingGetStreamAddedLatency](/es/reference/system/xgamestreaming/functions/xgamestreaminggetstreamaddedlatency.md)
- [XGameStreamingGetClients](/es/reference/system/xgamestreaming/functions/xgamestreaminggetclients.md)
