_InterlockedIncrement Systeminterne Funktionen

Bereitstellen der systeminternen Compilerunterstützung für die Win32 Windows SDK InterlockedIncrement-Funktion . Die _InterlockedIncrement systeminternen Funktionen sind microsoftspezifisch.

Syntax

long _InterlockedIncrement(
   long volatile * lpAddend
);
long _InterlockedIncrement_acq(
   long volatile * lpAddend
);
long _InterlockedIncrement_rel(
   long volatile * lpAddend
);
long _InterlockedIncrement_nf(
   long volatile * lpAddend
);
short _InterlockedIncrement16(
   short volatile * lpAddend
);
short _InterlockedIncrement16_acq(
   short volatile * lpAddend
);
short _InterlockedIncrement16_rel(
   short volatile * lpAddend
);
short _InterlockedIncrement16_nf (
   short volatile * lpAddend
);
__int64 _InterlockedIncrement64(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_acq(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_rel(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_nf(
   __int64 volatile * lpAddend
);

Parameter

lpAddend
[in, out] Zeiger auf die Variable, die erhöht werden soll.

Rückgabewert

Der Rückgabewert ist der resultierende erhöhte Wert.

Anforderungen

Intrinsic Aufbau Header
_InterlockedIncrement, _InterlockedIncrement16 x86, ARM, x64, ARM64 <intrin.h>
_InterlockedIncrement64 ARM, x64, ARM64 <intrin.h>
_InterlockedIncrement_acq, _InterlockedIncrement_rel, , _InterlockedIncrement16_acq_InterlockedIncrement_nf, _InterlockedIncrement16_rel, _InterlockedIncrement16_nf, _InterlockedIncrement64_acq, , _InterlockedIncrement64_rel_InterlockedIncrement64_nf ARM, ARM64 <intrin.h>

Hinweise

Es gibt mehrere Varianten von _InterlockedIncrement, die sich basierend auf den beinhalteten Datentypen und in Abhängigkeit davon unterscheiden, ob prozessorspezifische Semantiken zum Abrufen bzw. Freigeben verwendet werden.

Während die _InterlockedIncrement-Funktion mit 32-Bit-Ganzzahlwerten arbeitet, verwendet _InterlockedIncrement1616-Bit-Ganzzahlwerte und _InterlockedIncrement64 64-Bit-Ganzzahlwerte.

Verwenden Sie auf ARM-Plattformen die systeminternen Funktionen mit den Suffixen _acq und _rel, wenn Sie Semantiken zum Abrufen bzw. Freigeben benötigen, wie am Anfang und Ende eines kritischen Abschnitts. Das systeminterne _nf Suffix ("kein Zaun") fungiert nicht als Speicherbarriere.

Die Variable, auf die der lpAddend-Parameter zeigt, muss an einer 32-Bit-Grenze ausgerichtet sein; andernfalls schlägt diese Funktion auf x86-Multiprozessorsystemen und allen Nicht-x86-Systemen fehl. Weitere Informationen finden Sie unter "Ausrichten".

Die Win32-Funktion wird in Wdm.h oder Ntddk.h deklariert.

Diese Routinen sind nur als systeminterne Funktionen verfügbar.

Beispiel

Ein Beispiel für die Verwendung _InterlockedIncrementfinden Sie unter _InterlockedDecrement.

Siehe auch

Systeminterne Compiler
Schlüsselwörter
Konflikt mit dem x86-Compiler