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

# AcpHal

> AcpHal

# AcpHal

## Interfaces

| Interface                                                     | Description                      |
| ------------------------------------------------------------- | -------------------------------- |
| [IAcpHal](/reference/audio/acphal/interfaces/IAcpHal/iacphal) | Allows interaction with the ACP. |

## Functions

| Function                                                                                     | Description                                 |
| -------------------------------------------------------------------------------------------- | ------------------------------------------- |
| [AcpHalAllocateShapeContexts](/reference/audio/acphal/functions/acphalallocateshapecontexts) | Allocates context arrays for SHAPE and XMA. |
| [AcpHalCreate](/reference/audio/acphal/functions/acphalcreate)                               | Creates an instance of the ACP interface.   |
| [AcpHalReleaseShapeContexts](/reference/audio/acphal/functions/acphalreleaseshapecontexts)   | Releases SHAPE and XMA context arrays.      |

## Structures

| Structure                                                                                                                                       | Description                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [ACP\_COMMAND\_ENABLE\_OR\_DISABLE\_XMA\_CONTEXT](/reference/audio/acphal/structs/acp_command_enable_or_disable_xma_context)                    | Command for enabling or disabling an XMA context.                                      |
| [ACP\_COMMAND\_ENABLE\_OR\_DISABLE\_XMA\_CONTEXTS](/reference/audio/acphal/structs/acp_command_enable_or_disable_xma_contexts)                  | Command for enabling or disabling a series of XMA contexts.                            |
| [ACP\_COMMAND\_INCREMENT\_DMA\_POINTER](/reference/audio/acphal/structs/acp_command_increment_dma_pointer)                                      | Command for updating a DMA read or write pointer.                                      |
| [ACP\_COMMAND\_INCREMENT\_PCM\_WRITE\_POINTER](/reference/audio/acphal/structs/acp_command_increment_pcm_write_pointer)                         | Command for updating a PCM write pointer.                                              |
| [ACP\_COMMAND\_INCREMENT\_XMA\_WRITE\_BUFFER\_OFFSET\_READ](/reference/audio/acphal/structs/acp_command_increment_xma_write_buffer_offset_read) | Increments the read offset of the output buffer of a SHAPE\_XMA\_CONTEXT structure.    |
| [ACP\_COMMAND\_LOAD\_SHAPE\_FLOWGRAPH](/reference/audio/acphal/structs/acp_command_load_shape_flowgraph)                                        | Command for loading a flowgraph.                                                       |
| [ACP\_COMMAND\_MESSAGE](/reference/audio/acphal/structs/acp_command_message)                                                                    | Registers or unregisters one or more command messages.                                 |
| [ACP\_COMMAND\_UPDATE\_ALL\_CONTEXTS](/reference/audio/acphal/structs/acp_command_update_all_contexts)                                          | Command for updating arrays of all SHAPE context types.                                |
| [ACP\_COMMAND\_UPDATE\_CONTEXTS](/reference/audio/acphal/structs/acp_command_update_contexts)                                                   | Command for updating an array of a single SHAPE context type.                          |
| [ACP\_COMMAND\_UPDATE\_DMA\_CONTEXT](/reference/audio/acphal/structs/acp_command_update_dma_context)                                            | Command for updating a DMA context.                                                    |
| [ACP\_COMMAND\_UPDATE\_DMA\_READ\_CONTEXT\_ENTRY](/reference/audio/acphal/structs/acp_command_update_dma_read_context_entry)                    | Entry for updating a SHAPE\_DMA\_CONTEXT that reads from a mix buffer.                 |
| [ACP\_COMMAND\_UPDATE\_DMA\_WRITE\_CONTEXT\_ENTRY](/reference/audio/acphal/structs/acp_command_update_dma_write_context_entry)                  | Entry for updating a SHAPE\_DMA\_CONTEXT that writes to a mix buffer.                  |
| [ACP\_COMMAND\_UPDATE\_EQCOMP\_CONTEXT](/reference/audio/acphal/structs/acp_command_update_eqcomp_context)                                      | Command for updating an EQ/Comp context.                                               |
| [ACP\_COMMAND\_UPDATE\_EQCOMP\_CONTEXT\_ENTRY](/reference/audio/acphal/structs/acp_command_update_eqcomp_context_entry)                         | Entry for updating SHAPE\_EQCOMP\_CONTEXT.                                             |
| [ACP\_COMMAND\_UPDATE\_FILTVOL\_CONTEXT](/reference/audio/acphal/structs/acp_command_update_filtvol_context)                                    | Command for updating a Filter/Volume context.                                          |
| [ACP\_COMMAND\_UPDATE\_FILTVOL\_CONTEXT\_ENTRY](/reference/audio/acphal/structs/acp_command_update_filtvol_context_entry)                       | Entry for updating SHAPE\_FILTVOL\_CONTEXT.                                            |
| [ACP\_COMMAND\_UPDATE\_PCM\_CONTEXT](/reference/audio/acphal/structs/acp_command_update_pcm_context)                                            | Command for updating a PCM context.                                                    |
| [ACP\_COMMAND\_UPDATE\_PCM\_CONTEXT\_ENTRY](/reference/audio/acphal/structs/acp_command_update_pcm_context_entry)                               | Entry for updating a SHAPE\_PCM\_CONTEXT.                                              |
| [ACP\_COMMAND\_UPDATE\_SRC\_CONTEXT](/reference/audio/acphal/structs/acp_command_update_src_context)                                            | Command for updating an SRC context.                                                   |
| [ACP\_COMMAND\_UPDATE\_SRC\_CONTEXT\_ENTRY](/reference/audio/acphal/structs/acp_command_update_src_context_entry)                               | Entry for updating SHAPE\_SRC\_CONTEXT.                                                |
| [ACP\_COMMAND\_UPDATE\_XMA\_CONTEXT](/reference/audio/acphal/structs/acp_command_update_xma_context)                                            | Command for updating an XMA context.                                                   |
| [ACP\_COMMAND\_UPDATE\_XMA\_CONTEXT\_ENTRY](/reference/audio/acphal/structs/acp_command_update_xma_context_entry)                               | Entry for updating a SHAPE\_XMA\_CONTEXT.                                              |
| [ACP\_COMMAND\_UPDATE\_XMA\_READ\_BUFFER](/reference/audio/acphal/structs/acp_command_update_xma_read_buffer)                                   | Updates all the elements of a SHAPE\_XMA\_CONTEXT required for streaming encoded data. |
| [ACP\_MESSAGE](/reference/audio/acphal/structs/acp_message)                                                                                     | Message from the ACP.                                                                  |
| [ACP\_MESSAGE\_AUDIO\_FRAME\_START](/reference/audio/acphal/structs/acp_message_audio_frame_start)                                              | Audio frame start message.                                                             |
| [ACP\_MESSAGE\_COMMAND\_COMPLETED](/reference/audio/acphal/structs/acp_message_command_completed)                                               | An ACP command has completed.                                                          |
| [ACP\_MESSAGE\_ERROR](/reference/audio/acphal/structs/acp_message_error)                                                                        | Error message from the ACP.                                                            |
| [ACP\_MESSAGE\_FLOWGRAPH\_COMPLETED](/reference/audio/acphal/structs/acp_message_flowgraph_completed)                                           | Flowgraph completed message.                                                           |
| [ACP\_MESSAGE\_FLOWGRAPH\_TERMINATED](/reference/audio/acphal/structs/acp_message_flowgraph_terminated)                                         | Flowgraph terminated message.                                                          |
| [ACP\_MESSAGE\_SHAPE\_COMMAND\_BLOCKED](/reference/audio/acphal/structs/acp_message_shape_command_blocked)                                      | SHAPE command (SRC or DMA) context is blocked.                                         |
| [SHAPE\_CONTEXTS](/reference/audio/acphal/structs/shape_contexts)                                                                               | SHAPE context data.                                                                    |
| [SHARED\_SHAPE\_CONTEXTS](/reference/audio/acphal/structs/shared_shape_contexts)                                                                | This structure is used when sharing SHAPE and XMA resources with XAudio2.              |

## Enumerations

| Enumeration                                                                                         | Description                                                                                                  |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| [ACP\_COMMAND\_TYPE](/reference/audio/acphal/enums/acp_command_type)                                | Enumerates the ACP command types.                                                                            |
| [ACP\_FLOWGRAPH\_TERMINATED\_REASON](/reference/audio/acphal/enums/acp_flowgraph_terminated_reason) | The reasons flowgraph processing was terminated.                                                             |
| [ACP\_MESSAGE\_TYPE](/reference/audio/acphal/enums/acp_message_type)                                | Enumerates the ACP message types.                                                                            |
| [ACP\_SUBMIT\_COMMAND\_TYPE](/reference/audio/acphal/enums/acp_submit_command_type)                 | Indicates whether to check the command to be submitted and all past commands are completed before returning. |


## Related topics

- [AcpHalCreate](/reference/audio/acphal/functions/acphalcreate.md)
- [IAcpHal::Disconnect](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_disconnect.md)
- [IAcpHal::Connect](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_connect.md)
- [AcpHalAllocateShapeContexts](/reference/audio/acphal/functions/acphalallocateshapecontexts.md)
- [AcpHalReleaseShapeContexts](/reference/audio/acphal/functions/acphalreleaseshapecontexts.md)
