Compartilhar via


Função VideoPortInterlockedExchange (video.h)

A função VideoPortInterlockedExchange bloqueia ou desbloqueia um bloco de memória definindo uma variável de bloqueio definida pelo usuário como TRUE ou FALSE, respectivamente. Ele retorna o valor anteriormente mantido da variável de bloqueio.

Sintaxe

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

Parâmetros

[in, out] Target

Ponteiro para uma variável de bloqueio definida pelo usuário que é usada para controlar o acesso a um buffer de memória.

[in] Value

Especifica o valor a ser armazenado em Destino, o que indica se o buffer de memória deve ser bloqueado ou desbloqueado. Use TRUE para bloquear o buffer de memória e FALSE para desbloquear o buffer de memória.

Retornar valor

VideoPortInterlockedExchange retorna o valor que Target tinha antes da chamada de função.

Comentários

VideoPortInterlockedExchange pode ser usado para impedir a contenção de buffer comum de DMA em sistemas de vários processadores.

Quando o buffer não está sendo lido ou gravado em, a variável de bloqueio deve ter um valor false. Uma chamada subsequente para VideoPortInterlockedExchange com seu parâmetro Target definido como TRUE redefine a variável de bloqueio para TRUE, após a qual essa função retorna FALSE. O buffer agora está bloqueado, impedindo o acesso por outros threads. Quando as operações atuais no buffer forem concluídas, desbloqueie o buffer com uma chamada para VideoPortInterlockedExchange com seu parâmetro Target definido como FALSE.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho video.h (inclua Video.h)
Biblioteca Videoprt.lib
DLL Videoprt.sys
IRQL Qualquer nível

Confira também

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement