Fungsi ExInterlockedAddLargeInteger (wdm.h)
Rutinitas ExInterlockedAddLargeInteger menambahkan nilai bilangan bulat besar ke variabel yang ditentukan sebagai operasi atomik.
Sintaks
LARGE_INTEGER ExInterlockedAddLargeInteger(
[in, out] PLARGE_INTEGER Addend,
[in] LARGE_INTEGER Increment,
[in, out] PKSPIN_LOCK Lock
);
Parameter
[in, out] Addend
Penunjuk ke variabel yang akan disesuaikan dengan nilai Tahapan .
[in] Increment
Menentukan nilai yang akan ditambahkan ke Tambahkan.
[in, out] Lock
Pointer ke kunci putar yang akan digunakan untuk menyinkronkan akses ke Addend.
Nilai kembali
ExInterlockedAddLargeInteger mengembalikan nilai awal parameter Addend .
Keterangan
Rutinitas dukungan yang melakukan operasi yang saling mengunci diasumsikan tidak dapat menyebabkan kesalahan halaman. Artinya, kode atau data apa pun yang mereka sentuh tidak dapat menyebabkan kesalahan halaman tanpa menurunkan sistem. Mereka menggunakan kunci spin untuk mencapai atomitas pada mesin multiprosedor simetris. Pemanggil harus menyediakan penyimpanan residen untuk Kunci, yang harus diinisialisasi dengan KeInitializeSpinLock sebelum panggilan awal ke Xxx exInterlocked.
Kunci yang diteruskan ke ExInterlockedAddLargeInteger 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.
ExInterlockedAddLargeInteger menyela. Akibatnya, ini dapat digunakan untuk sinkronisasi antara ISR dan kode driver perangkat 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 lain yang diblokir tanpa kunci putar yang disediakan penelepon.
Penelepon ExInterlockedAddLargeInteger berjalan di IRQL apa pun. Penyimpanan untuk parameter Addend harus residen di semua IRQL.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows 2000 dan versi Windows yang lebih baru. Tidak tersedia di Windows 98 atau Windows Me. |
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