Функция 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 | Любой уровень |