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

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

Синтаксис

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

Параметры

[in, out] Target

Указатель на определяемую пользователем переменную блокировки, которая используется для управления доступом к буферу памяти.

[in] Value

Указывает значение, которое будет храниться в целевом объекте , которое указывает, должен ли буфер памяти быть заблокирован или разблокирован. Используйте значение TRUE , чтобы заблокировать буфер памяти, и FALSE , чтобы разблокировать буфер памяти.

Возвращаемое значение

VideoPortInterlockedExchange возвращает значение, которое целевой объект имел до вызова функции.

Комментарии

VideoPortInterlockedExchange можно использовать для предотвращения состязаний за общий буфер DMA в системах с несколькими процессорами.

Если буфер не считывается или не записывается в него, переменная блокировки должна иметь значение FALSE. Последующий вызов VideoPortInterlockedExchange с параметром Target , установленным в true , сбрасывает переменную блокировки в значение TRUE, после чего эта функция возвращает значение FALSE. Буфер теперь заблокирован, что препятствует доступу со стороны других потоков. После завершения текущих операций с буфером разблокируйте буфер с помощью вызова VideoPortInterlockedExchange с параметром Target , равным FALSE.

Требования

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

См. также раздел

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement