Fungsi ExInterlockedRemoveHeadList (wdm.h)
Rutinitas ExInterlockedRemoveHeadList menghapus entri dari awal daftar struktur LIST_ENTRY yang ditautkan dua kali lipat.
Sintaks
PLIST_ENTRY ExInterlockedRemoveHeadList(
[in, out] PLIST_ENTRY ListHead,
[in, out] PKSPIN_LOCK Lock
);
Parameter
[in, out] ListHead
Penunjuk ke struktur LIST_ENTRY yang berfungsi sebagai header daftar.
[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 putar ini hanya dengan rutinitas DaftarXxxExInterlocked .
Nilai kembali
ExInterlockedRemoveHeadList mengembalikan penunjuk ke struktur LIST_ENTRY dihapus dari daftar. Jika daftar kosong, rutinitas mengembalikan NULL.
Keterangan
ExInterlockedRemoveHeadList melakukan operasi serupa seperti RemoveHeadList, 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 dua kali lipat, lihat Lists Tertaut Singly dan Doubly.
Rutinitas ExInterlockedRemoveHeadList dapat dipanggil di IRQL apa pun. Penyimpanan untuk parameter ListHead 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