Fungsi InterlockedCompareExchangePointer (winnt.h)
Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi membandingkan dua nilai penunjuk dan pertukaran yang ditentukan dengan nilai penunjuk lain berdasarkan hasil perbandingan.
Untuk beroperasi pada nilai non-pointer, gunakan fungsi InterlockedCompareExchange .
Sintaks
PVOID InterlockedCompareExchangePointer(
[in, out] PVOID volatile *Destination,
[in] PVOID Exchange,
[in] PVOID Comperand
);
Parameter
[in, out] Destination
Penunjuk ke penunjuk ke nilai tujuan.
[in] Exchange
Nilai pertukaran.
[in] Comperand
Nilai untuk dibandingkan dengan Tujuan.
Nilai kembali
Fungsi mengembalikan nilai awal parameter Tujuan .
Keterangan
Fungsi membandingkan nilai Tujuan dengan nilai Comparand . Jika nilai Tujuan sama dengan nilai Comparand , nilai Exchange disimpan dalam alamat yang ditentukan oleh Tujuan. Jika tidak, tidak ada operasi yang dilakukan.
Pada sistem 64-bit, parameternya adalah 64 bit dan harus diselaraskan pada batas 64-bit; jika tidak, fungsi akan berpotensi tidak terduga. Pada sistem 32-bit, parameternya adalah 32 bit dan harus diselaraskan pada batas 32-bit.
Fungsi yang saling terhubung menyediakan mekanisme sederhana untuk menyinkronkan akses ke variabel yang dibagikan oleh beberapa utas. Fungsi ini bersifat atomik sehubungan dengan panggilan ke fungsi lain yang saling diblokir.
Fungsi ini diimplementasikan menggunakan kompilator intrinsik jika memungkinkan. Untuk informasi selengkapnya, lihat file header WinBase.h dan _InterlockedCompareExchangePointer.
Fungsi ini menghasilkan hambatan memori penuh (atau pagar) untuk memastikan bahwa operasi memori selesai secara berurutan.
Sistem berbasis Itanium: Untuk aplikasi penting performa, gunakan InterlockedCompareExchangePointerAcquire atau InterlockedCompareExchangePointerRelease sebagai gantinya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | winnt.h (termasuk Windows.h) |
Lihat juga
Akses Variabel Yang Saling Diblokir
InterlockedCompare64Exchange128
InterlockedCompareExchange16Acquire
InterlockedCompareExchange16NoFence
InterlockedCompareExchange16Release
InterlockedCompareExchangeAcquire
InterlockedCompareExchangeAcquire64
InterlockedCompareExchangeNoFence
InterlockedCompareExchangeNoFence64
InterlockedCompareExchangePointerAcquire
InterlockedCompareExchangePointerNoFence
InterlockedCompareExchangePointerRelease
InterlockedCompareExchangeRelease