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

# XAsyncProviderData

> AsyncProviderData

# AsyncProviderData

表示传递给异步提供程序回调函数的数据。

## Syntax

```cpp theme={null}
typedef struct XAsyncProviderData {  
    XAsyncBlock* async;  
    size_t bufferSize;  
    void* buffer;  
    void* context;  
} XAsyncProviderData  
```

### Members

*async*\
类型：[XAsyncBlock\*](https://docs.xbox.com/zh-CN/reference/system/xasync/structs/xasyncblock.md)

指向保存异步调用数据的 [XAsyncBlock](https://docs.xbox.com/zh-CN/reference/system/xasync/structs/xasyncblock.md) 的指针。

*bufferSize*\
类型：size\_t

*buffer* 中指定的结果缓冲区大小（以字节为单位）。仅当使用 [XAsyncOp::GetResult](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/enums/xasyncop.md) 操作代码调用回调函数时，此值才有效，且该值将等于或大于为对应的 [XAsyncComplete](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasynccomplete.md) 函数调用的 *requiredBufferSize* 参数指定的值。

*buffer*\
类型：void\*

指向回调函数结果缓冲区的指针。仅当使用 [XAsyncOp::GetResult](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/enums/xasyncop.md) 操作代码调用回调函数时，此值才有效。

*context*\
类型：void\*

调用 [XAsyncBegin](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncbegin.md) 时传递给回调函数的上下文指针。

## Remarks

此结构表示传递给异步提供程序回调函数的数据。每次调用回调函数时，此结构中的数据都可能会更改。会反复调用回调函数以执行由每次调用指定的 [XAsyncOp](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/enums/xasyncop.md) 操作代码确定的异步工作，此结构中的数据也可能随每次调用而变化。仅当使用 `XAsyncOp::GetResult` 操作代码调用回调函数时，*buffer* 和 *bufferSize* 的值才有效。使用任何操作代码调用回调函数时，*context* 的值都有效，但仅应在使用 `XAsyncOp::Cleanup` 操作代码调用回调函数时释放它。

有关在执行 `XAsyncOp` 中 `GetResult` 和 `Cleanup` 操作代码的异步工作时与 `XAsyncProviderData` 交互的回调函数示例，请参阅[异步编程模型](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-programming-model.md#heading-7)中的"异步库"部分。

## Requirements

**头文件：** XAsyncProvider.h

**受支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## See also

[XAsyncProvider Members](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md)\
[XAsyncComplete](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasynccomplete.md)\
[XAsyncBegin](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncbegin.md)\
[XAsyncOp](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/enums/xasyncop.md)\
[异步编程模型](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-programming-model.md)


## Related topics

- [XAsyncProvider](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncprovider.md)
- [XAsyncProvider（API 内容）](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md)
- [XAsyncOp](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/enums/xasyncop.md)
- [XAsyncBegin](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncbegin.md)
- [XAsyncProvider 库概述](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)
