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

# XAsyncProvider

> Função XAsyncProvider

# Função XAsyncProvider

Representa a função de retorno de chamada de uma chamada assíncrona para um provedor assíncrono.

## Sintaxe

```cpp theme={null}
HRESULT XAsyncProvider(  
         XAsyncOp op,  
         const XAsyncProviderData* data  
)  
```

### Parâmetros

*op*   \_In\_\
Tipo: [XAsyncOp](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/enums/xasyncop.md)

O código de operação a ser executado pela função de retorno de chamada.

*data*   \_Inout\_\
Tipo: [XAsyncProviderData\*](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/structs/xasyncproviderdata.md)

Um ponteiro para a estrutura [XAsyncProviderData](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/structs/xasyncproviderdata.md) usada para armazenar dados da chamada assíncrona e acompanhá-la.

### Valor retornado

Tipo: [HRESULT](https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a)

Retornará `S_OK` se for bem-sucedido; caso contrário, retornará um código de erro. Para obter uma lista de códigos de erro, consulte [Códigos de erro](https://docs.xbox.com/pt-BR/reference/errorcodes.md).

## Comentários

A função de retorno de chamada `XAsyncProvider` é implementada por um provedor assíncrono para realizar trabalho assíncrono. A função de retorno de chamada de um provedor assíncrono é chamada repetidamente pela API XAsync, e o que essa função de retorno de chamada deve fazer em cada chamada é determinado pelo código de operação [XAsyncOp](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/enums/xasyncop.md) especificado em *op* para cada chamada. Os dados usados pela função de retorno de chamada em cada chamada, incluindo o [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md) usado para acompanhar essa função de retorno de chamada, são especificados em *data*.

A função de retorno de chamada deve implementar apenas os códigos de operação de `XAsyncOp` necessários para realizar o trabalho assíncrono. Por exemplo, um provedor assíncrono que realiza trabalho de E/S assíncrona não cancelável e que não requer limpeza só precisa implementar `XAsyncOp::GetResult` na função de retorno de chamada desse provedor assíncrono.

Para obter um exemplo de provedor assíncrono que implementa os códigos de operação `DoWork`, `GetResult` e `Cleanup` de `XAsyncOp` e retorna um conteúdo de dados, consulte a seção "Biblioteca assíncrona" em [Modelo de programação assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-programming-model.md#heading-7).

## Requisitos

**Cabeçalho:** XAsyncProvider.h

**Biblioteca:** xgameruntime.lib

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Configurar provedor personalizado](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)

## Confira também

[Membros de XAsyncProvider](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/xasyncprovider_members.md)\
[XAsyncOp](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/enums/xasyncop.md)\
[XAsyncProviderData](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/structs/xasyncproviderdata.md)\
[Modelo de programação assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-programming-model.md)


## Related topics

- [XAsyncProvider (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/xasyncprovider_members.md)
- [Visão geral da biblioteca XAsyncProvider](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)
- [XAsyncProviderData](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/structs/xasyncproviderdata.md)
- [XAsyncBegin](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/functions/xasyncbegin.md)
- [XAsyncOp](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/enums/xasyncop.md)
