Fungsi ExInterlockedPushEntryList (wdm.h)
Rutinitas ExInterlockedPushEntryList secara atomik menyisipkan entri di awal daftar struktur SINGLE_LIST_ENTRY yang ditautkan secara senyap.
Sintaks
PSINGLE_LIST_ENTRY ExInterlockedPushEntryList(
[in, out] PSINGLE_LIST_ENTRY ListHead,
[in, out] __drv_aliasesMem PSINGLE_LIST_ENTRY ListEntry,
[in, out] PKSPIN_LOCK Lock
);
Parameter
[in, out] ListHead
Penunjuk ke struktur SINGLE_LIST_ENTRY yang berfungsi sebagai header daftar. Penyimpanan untuk ListHead harus residen di semua IRQL.
[in, out] ListEntry
Penunjuk ke struktur SINGLE_LIST_ENTRY yang mewakili entri yang akan disisipkan ke dalam daftar. Penyimpanan untuk ListEntry harus menjadi residen di semua IRQL.
[in, out] Lock
Penunjuk ke struktur KSPIN_LOCK yang berfungsi sebagai kunci putar yang digunakan untuk menyinkronkan akses ke daftar. Penyimpanan untuk kunci putaran harus residen dan harus diinisialisasi dengan memanggil KeInitializeSpinLock. Anda harus menggunakan kunci spin ini hanya dengan rutinitas ExInterlockedXxxList .
Nilai kembali
ExInterlockedPushEntryList mengembalikan penunjuk ke entri pertama daftar sebelum entri baru disisipkan. Jika daftar kosong, rutinitas mengembalikan NULL.
Keterangan
ExInterlockedPushEntryList melakukan operasi yang sama dengan PushEntryList, tetapi secara atomik. Jangan mencampur panggilan atomik dan non-atomik pada daftar yang sama.
Untuk informasi selengkapnya tentang menggunakan rutinitas ini untuk mengimplementasikan daftar yang ditautkan secara senyap, lihat Lists Tertaut Singly dan Doubly.
Rutinitas ExInterlockedPushEntryList dapat dipanggil di IRQL apa pun. Penyimpanan untuk parameter ListHead dan entri daftar harus residen di semua IRQL.
Persyaratan
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