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

# GetShapeDmaWritePointer

> GetShapeDmaWritePointer

# GetShapeDmaWritePointer

Obtient le pointeur d'écriture d'accès direct à la mémoire (DMA).

## Syntaxe

```cpp theme={null}
UINT32 GetShapeDmaWritePointer(  
         const SHAPE_DMA_CONTEXT* context  
)  
```

### Paramètres

*context*   \_In\_\
Type : [SHAPE\_DMA\_CONTEXT\*](/fr/reference/audio/shapedmacontext/structs/shape_dma_context)

Pointeur vers une structure [SHAPE\_DMA\_CONTEXT](/fr/reference/audio/shapedmacontext/structs/shape_dma_context).

### Valeur renvoyée

Type : UINT32

Pointeur d'écriture DMA.

## Remarques

Pour calculer la taille d'un tampon DMA, utilisez la formule suivante :

```cpp theme={null}
fullBufferSizeInBytes = 128 * 4 * numChannels * numFrames  
```

Les pointeurs de lecture et d'écriture sont incrémentés comme suit :

```cpp theme={null}
readPointer = (readPointer + 1) % numFrames 

writePointer = (writePointer + 1) % numFrames  
```

Les adresses dans le tampon audio sont calculées comme suit :

```cpp theme={null}
readAddress = audioBuffer + (128 * 4 * ((readPointer * numChannels) + channel))   

writeAddress = audioBuffer + (128 * 4 * ((writePointer * numChannels) + channel))  
```

Vous pouvez éviter le blocage des commandes DMA en veillant à ce que votre tampon audio soit suffisamment grand et à ce que les données soient diffusées à intervalles réguliers (en fonction de la taille du tampon). Par exemple, si vous diffusez quatre trames matérielles à la fois, assurez-vous qu'un multiple de ces trames (au moins un double tampon de huit trames) se trouve dans le tampon afin que le matériel puisse écrire en avance sur le pointeur de lecture du titre. Vous pouvez également imposer le vidage du tampon avant de soumettre le flowgraph suivant (consommer, mettre à jour le pointeur de lecture DMA, puis soumettre le flowgraph). Pour plus de détails, consultez [Commandes bloquées](/fr/build/console-features/audio/overviews/shape-overview#ID4EBGAC) dans [Vue d'ensemble de SHAPE](/fr/build/console-features/audio/overviews/shape-overview).

Vous pouvez soumettre des flowgraphs à traiter en mode persistant ou non persistant. Les flowgraphs persistants effectuent leur traitement, puis restent résidents pour le répéter dans la trame suivante, une fois que les pointeurs de lecture et d'écriture ont avancé et que les autres informations de contexte ont été mises à jour.

## Configuration requise

**En-tête :** shapedmacontext.h

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

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


## Related topics

- [GetShapeDmaWritePointer](/es/reference/audio/shapedmacontext/functions/getshapedmawritepointer.md)
- [ShapeDmaContext](/reference/audio/shapedmacontext/shapedmacontext_members.md)
