Partilhar 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 para 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 de destino, 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.

Valor de retorno

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

Observações

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

Quando o buffer não está sendo lido ou gravado, a variável de bloqueio deve ter um valor de FALSE. Uma chamada subsequente para VideoPortInterlockedExchange com seu parâmetro Target definido como VERDADEIRO redefine a variável de bloqueio para TRUE, após o 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
de cliente com suporte mínimo Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
da Plataforma de Destino Área de trabalho
cabeçalho video.h (inclua Video.h)
biblioteca Videoprt.lib
de DLL Videoprt.sys
IRQL Qualquer nível

Consulte também

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement