Sdílet prostřednictvím


_InterlockedExchangePointer vnitřní funkce

Specifické pro Microsoft

Provedení operace atomické exchange, který zkopíruje adresu jako druhý argument předaný na první a vrátí původní adresu prvního.

void * _InterlockedExchangePointer(    void * volatile * Target,    void * Value );  void * _InterlockedExchangePointer_acq(    void * volatile * Target,    void * Value );  void * _InterlockedExchangePointer_rel(    void * volatile * Target,    void * Value );  void * _InterlockedExchangePointer_nf(    void * volatile * Target,    void * Value );  void * _InterlockedExchangePointer_HLEAcquire(    void * volatile * Target,    void * Value );  void * _InterlockedExchangePointer_HLERelease(    void * volatile * Target,    void * Value );

Parametry

  • [ve out]Target
    Ukazatel na ukazatel na tuto hodnotu pro výměnu.Funkce nastaví hodnotu Value a vrátí původní hodnotu.

  • [v]Value
    Hodnota, která má vyměnit s hodnotou na kterou odkazuje Target.

Vrácená hodnota

Vrátí počáteční hodnotu, na kterou odkazuje Target.

Požadavky

Vnitřní

Architektura

Záhlaví

_InterlockedExchangePointer

x 86, ARM,x64

< intrin.h >

_InterlockedExchangePointer_acq, _InterlockedExchangePointer_rel, _InterlockedExchangePointer_nf

ARM

< intrin.h >

_InterlockedExchangePointer_HLEAcquire, _InterlockedExchangePointer_HLERelease

x64Díky podpoře HLE

< immintrin.h >

Na architektury x 86 _InterlockedExchangePointer je makra, která volá _InterlockedExchange.

Poznámky

64bitová verze systému parametry jsou 64 bitů a musí být uveden do hranice 64-bit; jinak funkce se nezdaří.Parametry na 32bitové verze systému, 32 bitů a musí být uveden do 32-bit hranice.Další informace naleznete v tématu zarovnat.

Na platformách ARM, použijte vnitřní objekty s _acq a _rel přípony, pokud potřebujete získat a verze sémantiku, například na začátku a na konci kritické sekce.Vnitřní s _nf příponu ("žádné ohraničení") není fungovat jako překážku paměti.

Na platformách Intel, které podporují hardwaru uzamčení Elision (HLE) pokyny, vnitřní objekty s _HLEAcquire a _HLERelease přípony zahrnout nápovědu pro procesor, který mohou urychlit výkonu tím, že eliminuje krok zápisu uzamčení hardwaru.Pokud tyto vnitřní objekty se nazývají na platformách, které nepodporují HLE, je pokyn ignorován.

Tyto rutiny jsou pouze k dispozici jako vnitřní objekty.

Viz také

Referenční dokumentace

Vnitřní funkce kompilátoru

Konflikty s překladačem x86