Fungsi ExInterlockedAddUlong (wdm.h)
Rutinitas ExInterlockedAddUlong menambahkan nilai panjang yang tidak ditandatangani ke bilangan bulat yang tidak ditandatangani tertentu sebagai operasi atomik.
Sintaks
ULONG ExInterlockedAddUlong(
[in, out] PULONG Addend,
[in] ULONG Increment,
[in, out] PKSPIN_LOCK Lock
);
Parameter
[in, out] Addend
Penunjuk ke bilangan bulat panjang yang tidak ditandatangani yang nilainya akan disesuaikan dengan nilai Tahapan .
[in] Increment
Menentukan bilangan bulat panjang yang tidak ditandatangani untuk ditambahkan.
[in, out] Lock
Penunjuk ke kunci putar yang akan digunakan untuk menyinkronkan akses ke Addend.
Nilai kembali
ExInterlockedAddUlong mengembalikan nilai asli (tidak disarankan) dari Addend.
Keterangan
Pertimbangkan untuk menggunakan InterlockedExchangeAdd alih-alih rutinitas ini. InterlockedExchangeAdd bisa lebih efisien karena tidak menggunakan kunci putaran dan diinlined oleh kompilator.
Rutinitas dukungan yang melakukan operasi yang saling di-interlock diasumsikan tidak mampu menyebabkan kesalahan halaman. Artinya, kode mereka maupun data apa pun yang mereka sentuh tidak dapat menyebabkan kesalahan halaman tanpa menurunkan sistem. Mereka menggunakan kunci spin untuk mencapai atomitas pada mesin multiproscessor simetris. Penelepon harus menyediakan penyimpanan residen untuk Lock, yang harus diinisialisasi dengan KeInitializeSpinLock sebelum panggilan awal ke ExInterlockedXxx.
Kunci yang diteruskan ke ExInterlockedAddULong digunakan untuk memastikan bahwa operasi penambahan pada Addend adalah atomik sehubungan dengan operasi lain pada nilai yang sama yang disinkronkan dengan kunci putar yang sama ini.
ExInterlockedAddUlong masker mengganggu. Akibatnya, ini dapat digunakan untuk sinkronisasi antara ISR dan kode driver lainnya, asalkan Kunci yang sama tidak pernah digunakan kembali dalam panggilan ke rutinitas yang berjalan di IRQL = DISPATCH_LEVEL.
Perhatikan bahwa panggilan ke Interlocked Xxx dijamin atom sehubungan dengan panggilan Xxx yang saling di-interlock tanpa kunci spin yang disediakan penelepon.
Pemanggil ExInterlockedAddUlong berjalan di IRQL apa pun. Penyimpanan untuk parameter Addend harus 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk