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

# SHAPE_DMA_CONTEXT

> SHAPE_DMA_CONTEXT

# SHAPE\_DMA\_CONTEXT

直接内存访问 (DMA) 上下文结构。

## 语法

```cpp theme={null}
typedef struct SHAPE_DMA_CONTEXT {  
    UINT32 timestamp : 21;
    UINT32 reserved0 : 3;
    UINT32 mixBufPeakMag : 4;
    UINT32 peakMag : 4;
    UINT32 readPointer : 5;
    UINT32 reserved1 : 3;
    UINT32 writePointer : 5;
    UINT32 reserved2 : 3;
    UINT32 full : 1;
    UINT32 reserved3 : 15;
    UINT32 reserved4 : 9;
    UINT32 address : 23;
    UINT32 numFrames : 5;
    UINT32 reserved5 : 3;
    UINT32 floatConvert : 1;
    UINT32 reserved6 : 7;
    UINT32 numChannels : 3;
    UINT32 reserved7 : 5;
    UINT32 channel : 3;
    UINT32 reserved8 : 5;
} SHAPE_DMA_CONTEXT  
```

### 成员

*timestamp*\
类型：UINT32

读取：上下文处理完成的时间戳。

*reserved0*\
类型：UINT32

保留。

*mixBufPeakMag*\
类型：UINT32

读取：输出混合缓冲区的峰值幅度。

*peakMag*\
类型：UINT32

读取：输出的峰值幅度。

*readPointer*\
类型：UINT32

读取/写入：从缓冲区起始位置起的读取指针，以每个声道的帧数或帧交错组为单位。

*reserved1*\
类型：UINT32

保留。

*writePointer*\
类型：UINT32

读取/写入：从缓冲区起始位置起的写入指针，以每个声道的帧数或帧交错组为单位。

*reserved2*\
类型：UINT32

保留。

*full*\
类型：UINT32

读取/写入：当读取指针和写入指针相等时，*full* 指示缓冲区为空还是已满（0 == 空，1 == 满）。

*reserved3*\
类型：UINT32

保留。

*reserved4*\
类型：UINT32

保留。

*address*\
类型：UINT32

写入：缓冲区地址，按 128 个采样对齐。

*numFrames*\
类型：UINT32

写入：*numFrames* + 1 等于每个声道的帧数，或系统内存 DMA 缓冲区中帧交错组的数量。值为 0 表示 1 帧。DMA 模块可以从此信息中推导出 DMA 循环缓冲区的大小。此字段在定义上下文和缓冲区时设置。

*reserved5*\
类型：UINT32

保留。

*floatConvert*\
类型：UINT32

写入：如果数据将被转换为浮点或从浮点转换，则为 1。如果数据为 32 位整数，则为 0。

*reserved6*\
类型：UINT32

保留。

*numChannels*\
类型：UINT32

写入：*numChannels* + 1 是缓冲区中的音频声道数。值为 0 表示 1 个声道。

*reserved7*\
类型：UINT32

保留。

*channel*\
类型：UINT32

写入：要读取/写入的声道。

*reserved8*\
类型：UINT32

保留。

## 备注

标记为 **Read** 的成员由 ACP 库写入，应用程序应仅进行读取。标记为 **Write** 的成员由你的应用程序设置，并且不会被 ACP 库更改。标记为 **Read/Write** 的成员由你的应用程序设置，但可能会被 ACP 库更改。

有关流图的信息，请参阅 [ACP 概述中的流图解析](/build/console-features/audio/overviews/acp-overview#ID4EHF)。

## 要求

**头文件：** shapedmacontext.h

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

## 概念性文档

* [ACP 概述](/build/console-features/audio/overviews/acp-overview)

## 另请参阅

[ShapeDmaContext](/reference/audio/shapedmacontext/shapedmacontext_members)


## Related topics

- [ShapeDmaContext](/zh-CN/reference/audio/shapedmacontext/shapedmacontext_members.md)
- [GetShapeDmaTimestamp](/zh-CN/reference/audio/shapedmacontext/functions/getshapedmatimestamp.md)
- [GetShapeDmaChannel](/zh-CN/reference/audio/shapedmacontext/functions/getshapedmachannel.md)
- [SetShapeDmaChannel](/zh-CN/reference/audio/shapedmacontext/functions/setshapedmachannel.md)
- [GetShapeDmaFloatSamples](/zh-CN/reference/audio/shapedmacontext/functions/getshapedmafloatsamples.md)
