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

# SetShapeDmaWritePointer

> SetShapeDmaWritePointer

# SetShapeDmaWritePointer

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

## Syntaxe

```cpp theme={null}
HRESULT SetShapeDmaWritePointer(  
         SHAPE_DMA_CONTEXT* context,  
         UINT32 writePointer  
)  
```

### Paramètres

*context*   \_Inout\_\
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).

*writePointer*   \
Type : UINT32

Valeur du pointeur d'écriture.

### Valeur renvoyée

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

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

- [SetShapeDmaWritePointer](/reference/audio/shapedmacontext/functions/setshapedmawritepointer.md)
- [ShapeDmaContext](/reference/audio/shapedmacontext/shapedmacontext_members.md)
