_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 _InterlockedIncrement16
16-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 _InterlockedIncrement
finden Sie unter _InterlockedDecrement.
Siehe auch
Systeminterne Compiler
Schlüsselwörter
Konflikt mit dem x86-Compiler