Partager via


VideoPortInterlockedExchange, fonction (video.h)

La fonction VideoPortInterlockedExchange verrouille ou déverrouille un bloc de mémoire en définissant une variable de verrouillage définie par l’utilisateur sur TRUE ou FALSE, respectivement. Elle retourne la valeur précédemment détenue de la variable de verrouillage.

Syntaxe

VIDEOPORT_API LONG VideoPortInterlockedExchange(
  [in, out] IN OUT PLONG Target,
  [in]      IN LONG      Value
);

Paramètres

[in, out] Target

Pointeur vers une variable de verrouillage définie par l’utilisateur utilisée pour contrôler l’accès à une mémoire tampon.

[in] Value

Spécifie la valeur à stocker dans Target, qui indique si la mémoire tampon doit être verrouillée ou déverrouillée. Utilisez TRUE pour verrouiller la mémoire tampon et FALSE pour déverrouiller la mémoire tampon.

Valeur retournée

VideoPortInterlockedExchange retourne la valeur que Target avait avant l’appel de fonction.

Remarques

VideoPortInterlockedExchange peut être utilisé pour empêcher la contention de mémoire tampon commune DMA dans les systèmes à plusieurs processeurs.

Lorsque la mémoire tampon n’est pas en cours de lecture ou d’écriture, la variable de verrouillage doit avoir la valeur FALSE. Un appel suivant à VideoPortInterlockedExchange avec son paramètre Target défini sur TRUE réinitialise la variable de verrouillage sur TRUE, après quoi cette fonction retourne FALSE. La mémoire tampon est maintenant verrouillée, ce qui empêche l’accès par d’autres threads. Une fois les opérations en cours sur la mémoire tampon terminées, déverrouillez la mémoire tampon avec un appel à VideoPortInterlockedExchange avec son paramètre Target défini sur FALSE.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête video.h (incluez Video.h)
Bibliothèque Videoprt.lib
DLL Videoprt.sys
IRQL N’importe quel niveau

Voir aussi

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement