İç 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.
Value
[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 _InterlockedExchange
bir 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ü