Makro ExInterlockedCompareExchange64 (wdm.h)

Rutinitas ExInterlockedCompareExchange64 membandingkan satu variabel bilangan bulat dengan variabel bilangan bulat lainnya dan, jika sama, mengatur variabel pertama ke nilai yang disediakan pemanggil.

Sintaks

void ExInterlockedCompareExchange64(
  [in, out]  Destination,
  [in]       Exchange,
             Comperand,
  [in]       Lock
);

Parameter

[in, out] Destination

Penunjuk ke bilangan bulat yang akan dibandingkan dan mungkin diganti.

[in] Exchange

Penunjuk ke bilangan bulat yang akan menggantikan yang ada di Tujuan jika perbandingan menghasilkan kesetaraan.

Comperand

Penunjuk ke bilangan bulat yang nilainya di Tujuan akan dibandingkan.

[in] Lock

Penunjuk ke spin-lock yang dialokasikan penelepon yang digunakan jika sistem host tidak mendukung operasi perbandingan dan pertukaran atom 8-byte.

Nilai kembali

Tidak ada

Keterangan

Makro ini membungkus InterlockedCompareExchange64 atau ExfInterlockedCompareExchange64 dan mengasumsikan nilai pengembalian dari jenis LONGLONG.

ExInterlockedCompareExchange64 menguji dan, mungkin, menggantikan nilai variabel tertentu. Untuk sebagian besar mikroprosedor yang mendasar, rutinitas ini diimplementasikan sebaris oleh kompilator untuk dieksekusi sebagai operasi atom. Jika kunci putar digunakan, rutinitas ini hanya dapat digunakan dengan aman pada parameter yang tidak disebarkan.

Jika Tujuan dan Comparand tidak sama, ExInterlockedCompareExchange64 hanya mengembalikan nilai Tujuan.

ExInterlockedCompareExchange64 hanya bersifat atomik sehubungan dengan panggilan Xxx lain (Ex)Interlocked.

Penelepon ExInterlockedCompareExchange64 dapat berjalan di IRQL apa pun. Penyimpanan untuk parameter Tujuan, Comparand, dan Exchange dan entri daftar harus merupakan residen di semua IRQL.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Tingkat apa pun (lihat bagian Keterangan)

Lihat juga

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangeAdd