InterlockedExchange-Funktion
Tauscht einen Wert atomar aus.
Syntax
void InterlockedExchange(
in UINT dest,
in UINT value,
out UINT original_value
);
Parameter
-
dest [in]
-
Typ: UINT
Die Zieladresse.
-
Wert [in]
-
Typ: UINT
Der Eingabewert.
-
original_value [out]
-
Typ: UINT
Der ursprüngliche Wert.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Bemerkungen
Dieser Vorgang kann nur für skalar typisierte Ressourcen und gemeinsam genutzte Arbeitsspeichervariablen ausgeführt werden. Es gibt drei mögliche Verwendungsmöglichkeiten für diese Funktion. Die erste ist, wenn R ein Shared Memory-Variablentyp ist. In diesem Fall führt die Funktion den Vorgang für das von dest referenzierte Shared Memory-Register aus. Das zweite Szenario ist, wenn R ein Ressourcenvariablentyp ist. In diesem Szenario führt die Funktion den Vorgang für den Ressourcenspeicherort aus, auf den von dest verwiesen wird. Schließlich ist das dritte Szenario, wenn R ein lokaler Variablentyp ist. In diesem Szenario reduziert sich die Funktion auf den Vorgang, der mit lokalen Vorgängen ausgeführt wird. Dieser Vorgang ist nur verfügbar, wenn R lesbar und beschreibbar ist.
Diese Funktion wird in den folgenden Shadertypen unterstützt:
VS | HS | DS | GS | PS | CS |
---|---|---|---|---|---|
x | x | x | x | x | x |
Siehe auch