Freigeben über


InterlockedDecrement-Funktion (winnt.h)

Verringert (verringert) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang.

Um mit 64-Bit-Werten zu arbeiten, verwenden Sie die Funktion InterlockedDecrement64 .

Syntax

LONG InterlockedDecrement(
  [in, out] LONG volatile *Addend
);

Parameter

[in, out] Addend

Ein Zeiger auf die Variable, die dekrementiert werden soll.

Rückgabewert

Die Funktion gibt den resultierenden dekrementierten Wert zurück.

Hinweise

Die Variable, auf die der Parameter Addend verweist, muss an einer 32-Bit-Grenze ausgerichtet werden. Andernfalls verhält sich diese Funktion auf x86-Multiprozessorsystemen und allen Nicht-x86-Systemen unvorhersehbar. Weitere Informationen finden Sie unter _aligned_malloc.

Die ineinandergreifenden Funktionen bieten einen einfachen Mechanismus zum Synchronisieren des Zugriffs auf eine Variable, die von mehreren Threads gemeinsam genutzt wird. Diese Funktion ist in Bezug auf Aufrufe von anderen ineinandergreifenden Funktionen unteilbar.

Diese Funktion wird nach Möglichkeit mithilfe eines intrinsischen Compilers implementiert. Weitere Informationen finden Sie in der WinBase.h-Headerdatei und _InterlockedDecrement.

Diese Funktion generiert eine vollständige Speicherbarriere (oder einen Zaun), um sicherzustellen, dass Speichervorgänge in der richtigen Reihenfolge abgeschlossen werden.

Itanium-basierte Systeme: Verwenden Sie für leistungskritische Anwendungen stattdessen InterlockedDecrementAcquire oder InterlockedDecrementRelease .

Hinweis Diese Funktion wird auf Windows RT-basierten Systemen unterstützt.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winnt.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Ineinandergreifen des Variablenzugriffs

InterlockedDecrement16

InterlockedDecrement16Acquire

InterlockedDecrement16NoFence

InterlockedDecrement16Release

InterlockedDecrement64

InterlockedDecrementAcquire

InterlockedDecrementAcquire64

InterlockedDecrementNoFence

InterlockedDecrementNoFence64

InterlockedDecrementRelease

InterlockedDecrementRelease64

InterlockedIncrement

Synchronisierungsfunktionen