Aracılığıyla paylaş


İç işlevleri _InterlockedExchangePointer

Microsoft'a Özgü

İkinci bağımsız değişken olarak geçirilen adresi ilk bağımsız değişkene kopyalayan ve ilkinin özgün adresini döndüren atomik bir değişim işlemi gerçekleştirir.

Sözdizimi

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
);

Parametreler

Hedef
[in, out] İşaretçinin, değiştirecek değere işaret eden işaretçisi. işlevi değeri Değer olarak ayarlar ve önceki değerini döndürür.

Değer
[in] Hedef tarafından işaret edilen değerle değiştirilecek değer.

Dönüş değeri

İşlev, Target tarafından işaret edilen ilk değeri döndürür.

Gereksinimler

Içsel Mimari Üst bilgi
_InterlockedExchangePointer x86, ARM, x64, ARM64 <intrin.h>
_InterlockedExchangePointer_acq, _InterlockedExchangePointer_rel, _InterlockedExchangePointer_nf ARM, ARM64 <intrin.h>
_InterlockedExchangePointer_HLEAcquire, _InterlockedExchangePointer_HLERelease x64 <immintrin.h>

x86 mimarisinde, _InterlockedExchangePointer öğesini çağıran _InterlockedExchangebir makrodur.

Açıklamalar

64 bit sistemde parametreler 64 bittir ve 64 bit sınırlara hizalanmalıdır. Aksi takdirde işlev başarısız olur. 32 bit sistemde parametreler 32 bittir ve 32 bit sınırlara hizalanmalıdır. Daha fazla bilgi için bkz . hizalama.

ARM platformlarında, kritik bir bölümün başında ve _rel sonunda olduğu gibi alma ve yayın semantiğine ihtiyacınız varsa iç bilgileri ve sonekleri _acq kullanın. Bir ("çit yok") soneki olan _nf iç, bellek engeli olarak çalışmaz.

Donanım Kilidi Elision (HLE) yönergelerini destekleyen Intel platformlarında, ve _HLERelease sonekleri ile _HLEAcquire iç bilgiler, donanımda kilit yazma adımını ortadan kaldırarak performansı hızlandırabilecek işlemciye yönelik bir ipucu içerir. Bu iç öğeler HLE'yi desteklemeyen platformlarda çağrılırsa ipucu yoksayılır.

Bu yordamlar yalnızca iç yordamlar olarak kullanılabilir.

END Microsoft'a Özgü

Ayrıca bkz.

Derleyici iç bilgileri
x86 Derleyicisi ile Çakışma