> ## 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(Direct Memory Access) 컨텍스트 구조체입니다.

## Syntax

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

### Members

*timestamp*\
Type: UINT32

Read: 컨텍스트 처리가 완료된 시점의 타임스탬프입니다.

*reserved0*\
Type: UINT32

예약됨.

*mixBufPeakMag*\
Type: UINT32

Read: 출력 믹스 버퍼의 피크 크기입니다.

*peakMag*\
Type: UINT32

Read: 출력의 피크 크기입니다.

*readPointer*\
Type: UINT32

Read/Write: 버퍼의 시작으로부터의 읽기 포인터로, 채널당 프레임 또는 프레임 인터리브 그룹 단위입니다.

*reserved1*\
Type: UINT32

예약됨.

*writePointer*\
Type: UINT32

Read/Write: 버퍼의 시작으로부터의 쓰기 포인터로, 채널당 프레임 또는 프레임 인터리브 그룹 단위입니다.

*reserved2*\
Type: UINT32

예약됨.

*full*\
Type: UINT32

Read/Write: 읽기 포인터와 쓰기 포인터가 같을 때, *full*은 버퍼가 비어 있는지 가득 차 있는지 나타냅니다(0 == 비어 있음, 1 == 가득 참).

*reserved3*\
Type: UINT32

예약됨.

*reserved4*\
Type: UINT32

예약됨.

*address*\
Type: UINT32

Write: 128개 샘플에 정렬된 버퍼 주소입니다.

*numFrames*\
Type: UINT32

Write: *numFrames* + 1은 채널당 프레임 수 또는 시스템 메모리 DMA 버퍼의 프레임 인터리브 그룹 수와 같습니다. 값이 0이면 프레임 하나를 의미합니다. 이 정보로부터 DMA 블록은 DMA 순환 버퍼의 크기를 도출할 수 있습니다. 이 필드는 컨텍스트와 버퍼가 정의될 때 설정됩니다.

*reserved5*\
Type: UINT32

예약됨.

*floatConvert*\
Type: UINT32

Write: 데이터가 float로 또는 float로부터 변환되어야 하는 경우 1입니다. 데이터가 32비트 정수인 경우 0입니다.

*reserved6*\
Type: UINT32

예약됨.

*numChannels*\
Type: UINT32

Write: *numChannels* + 1은 버퍼 내 오디오 채널 수입니다. 값이 0이면 하나의 채널을 의미합니다.

*reserved7*\
Type: UINT32

예약됨.

*channel*\
Type: UINT32

Write: 읽기/쓰기할 채널입니다.

*reserved8*\
Type: UINT32

예약됨.

## Remarks

**Read**로 표시된 멤버는 ACP 라이브러리가 쓰며, 애플리케이션은 읽기만 해야 합니다. **Write**로 표시된 멤버는 애플리케이션이 설정하며 ACP 라이브러리는 변경하지 않습니다. **Read/Write**로 표시된 멤버는 애플리케이션이 설정하지만 ACP 라이브러리에 의해 변경될 수 있습니다.

플로우그래프에 대한 정보는 [Flowgraph parsing in Overview of ACP](/build/console-features/audio/overviews/acp-overview#ID4EHF)를 참조하십시오.

## Requirements

**Header:** shapedmacontext.h

**Supported platforms:** XBOX One 계열 콘솔 및 XBOX Series 콘솔

## Conceptual documentation

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

## See also

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