VideoPortInterlockedExchange 函数 (video.h)

VideoPortInterlockedExchange 函数锁定或解锁内存块,方法是将用户定义的锁变量分别设置为 TRUEFALSE。 它返回以前持有的锁变量值。

语法

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

参数

[in, out] Target

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

[in] Value

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

返回值

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

言论

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

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

要求

要求 价值
最低支持的客户端 在 Windows 2000 及更高版本的 Windows作系统中可用。
目标平台 桌面
标头 video.h (include Video.h)
Videoprt.lib
DLL Videoprt.sys
IRQL 任何级别

另请参阅

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement