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


Функция 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