Fungsi ExInterlockedPopEntrySList (wdm.h)
Rutinitas ExInterlockedPopEntrySList secara atomik menghapus entri pertama dari daftar yang ditautkan secara berurutan.
Sintaks
NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList (
_Inout_ PSLIST_HEADER ListHead,
_Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
);
Parameter
[in, out] ListHead
Penunjuk ke struktur SLIST_HEADER yang berfungsi sebagai header untuk daftar yang ditautkan secara berurutan. ListHead harus telah diinisialisasi dengan memanggil ExInitializeSListHead.
[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
ExInterlockedPopEntrySList mengembalikan pointer ke struktur SLIST_ENTRY pertama dalam daftar. Jika daftar kosong, rutinitas mengembalikan NULL.
Keterangan
Untuk informasi selengkapnya tentang menggunakan rutinitas ini untuk mengimplementasikan daftar yang ditautkan secara berurutan, lihat Lists Tertaut Singly dan Doubly.
Pada Windows 2000, driver harus menggunakan tombol -D_WIN2K_COMPAT_SLIST_USAGE untuk berhasil menautkan kode yang menggunakan ExInterlockedPopEntrySList.
ExInterlockedPopEntrySList 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) |