Bagikan melalui


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)

Lihat juga

ExInitializeSListHead

ExInterlockedPushEntrySList

ExInterlockedRemoveHeadList

ExQueryDepthSList

KeInitializeSpinLock