> ## 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.

# XAsyncComplete

> XAsyncComplete

# XAsyncComplete

Indica que a função de retorno de chamada de um provedor assíncrono concluiu o trabalho e os resultados podem ser retornados.

## Sintaxe

```cpp theme={null}
void XAsyncComplete(  
         XAsyncBlock* asyncBlock,  
         HRESULT result,  
         size_t requiredBufferSize  
)  
```

### Parâmetros

*asyncBlock*   \_Inout\_\
Tipo: [XAsyncBlock\*](/pt-BR/reference/system/xasync/structs/xasyncblock)

Um ponteiro para o [XAsyncBlock](/pt-BR/reference/system/xasync/structs/xasyncblock) que foi passado para [XAsyncBegin](/pt-BR/reference/system/xasyncprovider/functions/xasyncbegin).

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

O resultado do trabalho realizado pela função de retorno de chamada. Se o trabalho for cancelado, defina como `E_ABORT`. Se for necessário realizar mais trabalho, defina como `E_PENDING`. Caso contrário, defina como o código de resultado apropriado.

*requiredBufferSize*   \_In\_\
Tipo: size\_t

O tamanho necessário, em bytes, do conteúdo de dados a ser retornado pela função de retorno de chamada. Se a função de retorno de chamada não retornar um conteúdo de dados, defina este valor como zero. Este parâmetro será ignorado se a função de retorno de chamada retornar um erro.

### Valor retornado

Tipo: void

## Comentários

<Note>Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, consulte [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Esta função é chamada quando a função de retorno de chamada foi chamada para realizar ou cancelar o trabalho assíncrono. A função retorna um código de resultado apropriado e, se aplicável, informações sobre o conteúdo de dados. A combinação do código de operação [XAsyncOp](/pt-BR/reference/system/xasyncprovider/enums/xasyncop), do trabalho assíncrono e do conteúdo de dados da função de retorno de chamada normalmente determina os valores que devem ser fornecidos para *result* e *requiredBufferSize* ao chamar esta função.

Se a função de retorno de chamada tiver sido chamada com o código de operação `XAsyncOp::DoWork`, ela deverá realizar o trabalho assíncrono. Se a função de retorno de chamada tiver concluído todo o trabalho assíncrono, defina *result* como um código de erro apropriado. Se for necessário realizar mais trabalho, defina *result* como `E_PENDING`. Se a função retornar um conteúdo de dados, defina *requiredBufferSize* como o tamanho, em bytes, do buffer necessário para retornar o conteúdo de dados; caso contrário, defina *requiredBufferSize* como zero.

Se a função de retorno de chamada tiver sido chamada com o código de operação `XAsyncOp::Cancel`, ela deverá cancelar o trabalho assíncrono. Defina *result* como `E_ABORT` e *requiredBufferSize* como zero.

## 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 a capacidade de cancelamento](/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability)
* [Configurar provedor personalizado](/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider)
* [Configurar dados de retorno](/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data)
* [Modelo de programação assíncrona](/pt-BR/build/core-features/common/async/async-programming-model)
* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

[Membros de XAsyncProvider](/pt-BR/reference/system/xasyncprovider/xasyncprovider_members)\
[XAsyncBegin](/pt-BR/reference/system/xasyncprovider/functions/xasyncbegin)\
[Modelo de programação assíncrona](/pt-BR/build/core-features/common/async/async-programming-model)


## Related topics

- [XAsyncComplete](/reference/system/xasyncprovider/functions/xasynccomplete.md)
- [XAsyncOp](/reference/system/xasyncprovider/enums/xasyncop.md)
- [XAsyncGetResult](/reference/system/xasyncprovider/functions/xasyncgetresult.md)
- [AsyncProviderData](/reference/system/xasyncprovider/structs/xasyncproviderdata.md)
