Поделиться через


Функция VideoPortInterlockedExchange (video.h)

Функция VideoPortInterlockedExchange блокирует или разблокирует блок памяти, задав определяемую пользователем переменную блокировки для TRUE или FALSEсоответственно. Он возвращает ранее удерживаемое значение переменной блокировки.

Синтаксис

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 Target значением TRUE сбрасывает переменную блокировки до TRUE, после чего эта функция возвращает FALSE. Буфер теперь заблокирован, предотвращая доступ другими потоками. После завершения текущих операций в буфере разблокируйте буфер с вызовом VideoPortInterlockedExchange с параметром target Target значением FALSE.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
целевая платформа Настольный
заголовка video.h (include Video.h)
библиотеки Videoprt.lib
DLL Videoprt.sys
IRQL Любой уровень

См. также

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement