Freigeben über


Systeminterne Funktionen „_interlockedbittestandreset“

Microsoft-spezifisch

Generiert eine Anweisung, die Bit b der Adresse a auf 0 (null) setzt und den ursprünglichen Wert zurückgibt.

unsigned char _interlockedbittestandreset(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_acq(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_HLEAcquire(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_HLERelease(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_nf(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_rel(
   long *a,
   long b
); 
unsigned char _interlockedbittestandreset64(
   __int64 *a,
   __int64 b
); 
unsigned char _interlockedbittestandreset64_HLEAcquire(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandreset64_HLERelease(
   __int64 *a,
   __int64 b
);

Parameter

  • [in] a
    Ein Zeiger auf den zu untersuchenden Speicher.

  • [in] b
    Die zu testende Bitposition.

Rückgabewert

Der ursprüngliche Wert des Bits an der durch b angegebenen Position.

Anforderungen

Systemintern

Architektur

Header

_interlockedbittestandreset

x86, ARM, x64

<intrin.h>

_interlockedbittestandreset_acq, _interlockedbittestandreset_nf, _interlockedbittestandreset_rel

ARM

<intrin.h>

_interlockedbittestandreset_HLEAcquire, _interlockedbittestandreset_HLERelease

x86, x64

<immintrin.h>

_interlockedbittestandreset64

x64

<intrin.h>

_interlockedbittestandreset64_HLEAcquire, _interlockedbittestandreset64_HLERelease

x64

<immintrin.h>

Hinweise

Auf x86- und x64-Prozessoren verwenden diese systeminternen Funktionen die lock btr-Anweisung, die das angegebene Bit liest und in einem atomarischen Vorgang auf 0 (null) setzt.

Verwenden Sie auf ARM-Prozessoren 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. Die systeminternen ARM-Funktionen mit dem Suffix _nf („no fence“) dienen nicht als Arbeitsspeicherbarriere.

Auf Intel-Prozessoren, die Hardware Lock Elision (HLE)-Anweisungen unterstützen, enthalten die systeminternen Funktionen mit den Suffixen _HLEAcquire und _HLERelease einen Hinweis auf den Prozessor, der die Leistung durch Beseitigen einer Schreibsperre in der Hardware beschleunigen kann. Wenn diese systeminternen Funktionen auf Prozessoren aufgerufen werden, die HLE nicht unterstützen, wird der Hinweis ignoriert.

Diese Routinen sind nur als systeminterne Funktionen verfügbar.

Siehe auch

Referenz

Intrinsische Compilerfunktionen

Konflikt mit dem x86-Compiler