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

# ACP_COMMAND_UPDATE_XMA_CONTEXT

> ACP_COMMAND_UPDATE_XMA_CONTEXT

# ACP\_COMMAND\_UPDATE\_XMA\_CONTEXT

Command for updating an XMA context.

## Syntax

```cpp theme={null}
typedef struct ACP_COMMAND_UPDATE_XMA_CONTEXT {  
    UINT32 contextIndex;  
    UINT32 updateMask;  
    APU_ADDRESS contextData;  
} ACP_COMMAND_UPDATE_XMA_CONTEXT  
```

### Members

*contextIndex*\
Type: UINT32

Index of a context to be updated.

*updateMask*\
Type: UINT32

One or more update flags.

| Flag                                            | Value      |
| ----------------------------------------------- | ---------- |
| SHAPE\_XMA\_UPDATE\_SIZE\_READ0                 | 0x00000001 |
| SHAPE\_XMA\_UPDATE\_SIZE\_READ1                 | 0x00000002 |
| SHAPE\_XMA\_UPDATE\_NUM\_LOOPS                  | 0x00000004 |
| SHAPE\_XMA\_UPDATE\_VALID\_BUFFER               | 0x00000008 |
| SHAPE\_XMA\_UPDATE\_SIZE\_WRITE                 | 0x00000010 |
| SHAPE\_XMA\_UPDATE\_LOOP\_SUBFRAME\_END         | 0x00000020 |
| SHAPE\_XMA\_UPDATE\_LOOP\_SUBFRAME\_SKIP        | 0x00000040 |
| SHAPE\_XMA\_UPDATE\_NUM\_SUBFRAME\_TO\_DECODE   | 0x00000080 |
| SHAPE\_XMA\_UPDATE\_NUM\_SUBFRAMES\_TO\_SKIP    | 0x00000100 |
| SHAPE\_XMA\_UPDATE\_SAMPLERATE                  | 0x00000200 |
| SHAPE\_XMA\_UPDATE\_NUM\_CHANNELS               | 0x00000400 |
| SHAPE\_XMA\_UPDATE\_VALID\_WRITE                | 0x00000800 |
| SHAPE\_XMA\_UPDATE\_OFFSET\_READ                | 0x00001000 |
| SHAPE\_XMA\_UPDATE\_LOOP\_START\_OFFSET         | 0x00002000 |
| SHAPE\_XMA\_UPDATE\_LOOP\_END\_OFFSET           | 0x00004000 |
| SHAPE\_XMA\_UPDATE\_PACKET\_METADATA            | 0x00008000 |
| SHAPE\_XMA\_UPDATE\_CURRENT\_BUFFER             | 0x00010000 |
| SHAPE\_XMA\_UPDATE\_PTR\_READ0                  | 0x00020000 |
| SHAPE\_XMA\_UPDATE\_PTR\_READ1                  | 0x00040000 |
| SHAPE\_XMA\_UPDATE\_PTR\_WRITE                  | 0x00080000 |
| SHAPE\_XMA\_UPDATE\_PTR\_OVERLAPADD             | 0x00100000 |
| SHAPE\_XMA\_UPDATE\_WRITE\_BUFFER\_OFFSET\_READ | 0x00200000 |
| SHAPE\_XMA\_UPDATE\_MASK                        | 0x003fffff |

*contextData*\
Type: APU\_ADDRESS

Physical address of the context data to be updated. Refer to the [SHAPE\_XMA\_CONTEXT](/reference/audio/shapexmacontext/structs/shape_xma_context) structure.

## Remarks

This structure is used by the `ACP_COMMAND_TYPE_UPDATE_XMA_CONTEXT` command. Use the command to update only a small number of contexts per audio frame; updating a large number of contexts is not efficient. See the [Rendering audio section of Overview of ACP](/build/console-features/audio/overviews/acp-overview#ID4E6C) for more detail.

## Requirements

**Header:** acphal.h

**Supported platforms:** XBOX One family consoles and XBOX Series consoles

## Conceptual documentation

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

## See also

[SHAPE\_PCM\_CONTEXT](/reference/audio/shapepcmcontext/structs/shape_pcm_context)\
[ACP\_COMMAND\_TYPE](/reference/audio/acphal/enums/acp_command_type)\
[SubmitCommand](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_submitcommand)\
[AcpHal](/reference/audio/acphal/acphal_members)


## Related topics

- [ACP overview](/build/console-features/audio/overviews/acp-overview.md)
- [ACP_COMMAND_TYPE](/reference/audio/acphal/enums/acp_command_type.md)
- [AcpHal](/reference/audio/acphal/acphal_members.md)
- [ACP_COMMAND_LOAD_SHAPE_FLOWGRAPH](/reference/audio/acphal/structs/acp_command_load_shape_flowgraph.md)
- [ACP_COMMAND_UPDATE_XMA_CONTEXT_ENTRY](/reference/audio/acphal/structs/acp_command_update_xma_context_entry.md)
