> ## 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 la función de devolución de llamada de un proveedor asincrónico ha completado el trabajo y que se pueden devolver los resultados.

## Sintaxis

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

### Parámetros

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

Un puntero al [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) que se pasó a [XAsyncBegin](/reference/system/xasyncprovider/functions/xasyncbegin).

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

El resultado del trabajo realizado por la función de devolución de llamada. Si el trabajo se cancela, establézcalo en `E_ABORT`. Si es necesario realizar más trabajo, establézcalo en `E_PENDING`. De lo contrario, establézcalo en el código de resultado adecuado.

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

El tamaño necesario, en bytes, de la carga de datos que devolverá la función de devolución de llamada. Si la función de devolución de llamada no devuelve una carga de datos, establezca este valor en cero. Este parámetro se ignora si la función de devolución de llamada devuelve un error.

### Valor devuelto

Tipo: void

## Comentarios

<Note>No es seguro llamar a esta función en un subproceso con dependencia temporal. Para obtener más información, consulte [Subprocesos con dependencia temporal](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Se llama a esta función cuando se ha llamado a la función de devolución de llamada para realizar o cancelar trabajo asincrónico. La función devuelve un código de resultado adecuado y, si procede, información sobre la carga de datos. La combinación de código de operación [XAsyncOp](/reference/system/xasyncprovider/enums/xasyncop), trabajo asincrónico y carga de datos de la función de devolución de llamada suele determinar los valores que se deben proporcionar para *result* y *requiredBufferSize* al llamar a esta función.

Si se ha llamado a la función de devolución de llamada con el código de operación `XAsyncOp::DoWork`, la función de devolución de llamada debe realizar el trabajo asincrónico. Si la función de devolución de llamada ha completado todo el trabajo asincrónico, establezca *result* en un código de error adecuado. Si es necesario realizar más trabajo, establezca *result* en `E_PENDING`. Si la función devuelve una carga de datos, establezca *requiredBufferSize* en el tamaño, en bytes, del búfer necesario para devolver la carga de datos; de lo contrario, establezca *requiredBufferSize* en cero.

Si se ha llamado a la función de devolución de llamada con el código de operación `XAsyncOp::Cancel`, la función de devolución de llamada debe cancelar el trabajo asincrónico. Establezca *result* en `E_ABORT` y *requiredBufferSize* en cero.

## Requisitos

**Encabezado:** XAsyncProvider.h

**Biblioteca:** xgameruntime.lib

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

## Documentación conceptual

* [Configurar la capacidad de cancelación](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability)
* [Configurar un proveedor personalizado](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider)
* [Configurar los datos devueltos](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data)
* [Modelo de programación asincrónica](/build/core-features/common/async/async-programming-model)
* [Subprocesos con dependencia temporal](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Consulte también

[Miembros de XAsyncProvider](/reference/system/xasyncprovider/xasyncprovider_members)\
[XAsyncBegin](/reference/system/xasyncprovider/functions/xasyncbegin)\
[Modelo de programación asincrónica](/build/core-features/common/async/async-programming-model)


## Related topics

- [XAsyncGetResult](/es/reference/system/xasyncprovider/functions/xasyncgetresult.md)
- [AsyncProviderData](/es/reference/system/xasyncprovider/structs/xasyncproviderdata.md)
- [XAsyncOp](/es/reference/system/xasyncprovider/enums/xasyncop.md)
- [Ejemplo de configuración de los datos devueltos](/es/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)
- [Ejemplo de configuración de la capacidad de cancelación](/es/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)
