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

Indique que la fonction de rappel d'un fournisseur asynchrone a terminé son travail et que les résultats peuvent être retournés.

## Syntaxe

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

### Paramètres

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

Pointeur vers le [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) qui a été passé à [XAsyncBegin](/fr/reference/system/xasyncprovider/functions/xasyncbegin).

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

Résultat du travail effectué par la fonction de rappel. Si le travail est annulé, définissez cette valeur sur `E_ABORT`. Si du travail supplémentaire doit être effectué, définissez-la sur `E_PENDING`. Sinon, définissez-la sur le code de résultat approprié.

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

Taille requise, en octets, de la charge utile de données à retourner par la fonction de rappel. Si la fonction de rappel ne retourne pas de charge utile de données, définissez cette valeur sur zéro. Ce paramètre est ignoré si la fonction de rappel retourne une erreur.

### Valeur de retour

Type : void

## Remarques

<Note>Il n'est pas sûr d'appeler cette fonction sur un thread soumis à des contraintes de temps. Pour plus d'informations, consultez [Threads soumis à des contraintes de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Cette fonction est appelée lorsque la fonction de rappel a été appelée pour effectuer ou annuler un travail asynchrone. La fonction retourne un code de résultat approprié et, le cas échéant, des informations sur la charge utile de données. La combinaison du code d'opération [XAsyncOp](/fr/reference/system/xasyncprovider/enums/xasyncop), du travail asynchrone et de la charge utile de données de la fonction de rappel détermine généralement les valeurs à fournir pour *result* et *requiredBufferSize* lors de l'appel de cette fonction.

Si la fonction de rappel a été appelée avec le code d'opération `XAsyncOp::DoWork`, elle doit effectuer le travail asynchrone. Si la fonction de rappel a terminé tout le travail asynchrone, définissez *result* sur un code d'erreur approprié. Si du travail supplémentaire doit être effectué, définissez *result* sur `E_PENDING`. Si la fonction retourne une charge utile de données, définissez *requiredBufferSize* sur la taille, en octets, de la mémoire tampon nécessaire pour retourner la charge utile de données ; sinon, définissez *requiredBufferSize* sur zéro.

Si la fonction de rappel a été appelée avec le code d'opération `XAsyncOp::Cancel`, elle doit annuler le travail asynchrone. Définissez *result* sur `E_ABORT` et *requiredBufferSize* sur zéro.

## Configuration requise

**En-tête :** XAsyncProvider.h

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Configurer la possibilité d'annulation](/fr/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability)
* [Configurer un fournisseur personnalisé](/fr/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider)
* [Configurer les données de retour](/fr/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data)
* [Modèle de programmation asynchrone](/fr/build/core-features/common/async/async-programming-model)
* [Threads soumis à des contraintes de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[Membres XAsyncProvider](/fr/reference/system/xasyncprovider/xasyncprovider_members)\
[XAsyncBegin](/fr/reference/system/xasyncprovider/functions/xasyncbegin)\
[Modèle de programmation asynchrone](/fr/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)
- [Asynchronous Programming Model](/build/core-features/common/async/async-programming-model.md)
