VideoPortInterlockedExchange-Funktion (video.h)

Die VideoPortInterlockedExchange-Funktion sperrt oder entsperrt einen Speicherblock, indem eine benutzerdefinierte Sperrvariable auf TRUE bzw . FALSE festgelegt wird. Es gibt den zuvor gehaltenen Wert der Sperrvariablen zurück.

Syntax

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

Parameter

[in, out] Target

Zeiger auf eine benutzerdefinierte Sperrvariable, die zum Steuern des Zugriffs auf einen Speicherpuffer verwendet wird.

[in] Value

Gibt den Wert an, der in Target gespeichert werden soll, was angibt, ob der Speicherpuffer gesperrt oder entsperrt werden soll. Verwenden Sie TRUE , um den Speicherpuffer zu sperren, und FALSE , um den Speicherpuffer zu entsperren.

Rückgabewert

VideoPortInterlockedExchange gibt den Wert zurück, den Target vor dem Funktionsaufruf hatte.

Hinweise

VideoPortInterlockedExchange kann verwendet werden, um DMA-Common-Buffer-Konflikte in Systemen mit mehreren Prozessoren zu verhindern.

Wenn der Puffer nicht aus gelesen oder in geschrieben wird, sollte die Sperrvariable den Wert FALSE aufweisen. Ein nachfolgender Aufruf von VideoPortInterlockedExchange mit dem Target-Parameter , der auf TRUE festgelegt ist, setzt die Sperrvariable auf TRUE zurück, woraufhin diese Funktion FALSE zurückgibt. Der Puffer ist jetzt gesperrt, wodurch der Zugriff durch andere Threads verhindert wird. Wenn die aktuellen Vorgänge für den Puffer abgeschlossen sind, entsperren Sie den Puffer mit einem Aufruf von VideoPortInterlockedExchange , wobei der Target-Parameter auf FALSE festgelegt ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Kopfzeile video.h (einschließen von Video.h)
Bibliothek Videoprt.lib
DLL Videoprt.sys
IRQL Beliebige Ebene

Weitere Informationen

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement