VideoPortInterlockedExchange 函数 (video.h)

VideoPortInterlockedExchange 函数通过将用户定义的锁变量分别设置为 TRUEFALSE 来锁定或解锁内存块。 它返回锁变量以前保留的值。

语法

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

参数

[in, out] Target

指向用户定义的锁变量的指针,该锁变量用于控制对内存缓冲区的访问。

[in] Value

指定要存储在 Target 中的值,该值指示是锁定还是解锁内存缓冲区。 使用 TRUE 锁定内存缓冲区,使用 FALSE 解锁内存缓冲区。

返回值

VideoPortInterlockedExchange 返回 Target 在函数调用之前具有的值。

注解

VideoPortInterlockedExchange 可用于防止多处理器系统中的 DMA 通用缓冲区争用。

当缓冲区未从中读取或写入时,锁变量的值应为 FALSE。 后续调用 VideoPortInterlockedExchange 且其 Target 参数设置为 TRUE 会将锁变量重置为 TRUE,此后此函数返回 FALSE。 缓冲区现已锁定,阻止其他线程访问。 当缓冲区上的当前操作完成时,通过调用 VideoPortInterlockedExchange 来解锁缓冲区,其 Target 参数设置为 FALSE

要求

要求
最低受支持的客户端 适用于 Windows 2000 及更高版本的 Windows 操作系统。
目标平台 桌面
标头 video.h (包括 Video.h)
Library Videoprt.lib
DLL Videoprt.sys
IRQL 任何级别

另请参阅

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement