Systeminterne Funktionen „_InterlockedIncrement“
Microsoft-spezifisch
Stellt systeminterne Compiler-Unterstützung für die Win32-Windows SDK InterlockedIncrement-Funktion bereit.
long _InterlockedIncrement(
long * lpAddend
);
long _InterlockedIncrement_acq(
long * lpAddend
);
long _InterlockedIncrement_rel(
long * lpAddend
);
long _InterlockedIncrement_nf(
long * lpAddend
);
short _InterlockedIncrement16(
short * lpAddend
);
short _InterlockedIncrement16_acq(
short * lpAddend
);
short _InterlockedIncrement16_rel(
short * lpAddend
);
short _InterlockedIncrement16_nf (
short * lpAddend
);
__int64 _InterlockedIncrement64(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_acq(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_rel(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_nf(
__int64 * lpAddend
);
Parameter
- [in, out] lpAddend
Zeiger auf die zu erhöhende Variable.
Rückgabewert
Der Rückgabewert ist der resultierende erhöhte Wert.
Anforderungen
Systemintern |
Architektur |
Header |
---|---|---|
_InterlockedIncrement, _InterlockedIncrement16, _InterlockedIncrement64 |
x86, ARM, x64 |
<intrin.h> |
_InterlockedIncrement_acq, _InterlockedIncrement_rel, _InterlockedIncrement_nf, _InterlockedIncrement16_acq, _InterlockedIncrement16_rel, _InterlockedIncrement16_nf, _InterlockedIncrement64_acq, _InterlockedIncrement64_rel, _InterlockedIncrement64_nf |
ARM |
<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 abrufen und freigeben müssen, beispielsweise am Anfang und Ende eines kritischen Abschnitts. Die systeminternen Funktionen mit dem Suffix _nf („keine Umgrenzung“) fungieren nicht als Arbeitsspeicherbarriere.
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 zur Verwendung von _InterlockedIncrement finden Sie unter _InterlockedDecrement.