Makro ExInterlockedPushEntrySList (wdm.h)

Rutinitas ExInterlockedPushEntrySList secara atomik menyisipkan entri di awal daftar yang ditautkan secara berurutan.

Sintaks

NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPushEntrySList (
    _Inout_ PSLIST_HEADER ListHead,
    _Inout_ __drv_aliasesMem PSLIST_ENTRY ListEntry,
    _Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
    );

Parameter

ListHead

Penunjuk ke struktur SLIST_HEADER yang berfungsi sebagai header untuk daftar yang ditautkan secara berurutan. ListHead harus telah diinisialisasi dengan memanggil ExInitializeSListHead.

ListEntry

Penunjuk ke entri yang dialokasikan penelepon untuk disisipkan.

[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

Jika ada entri pada daftar yang ditentukan, ExInterlockedPushEntrySList mengembalikan penunjuk ke struktur SLIST_ENTRY pertama yang merupakan entri dalam daftar; jika tidak, ia 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 ExInterlockedPushEntrySList.

Rutinitas ExInterlockedPushEntrySList dapat dipanggil di IRQL apa pun. Penyimpanan untuk parameter ListHead dan entri daftar 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

ExInterlockedInsertTailList

ExInterlockedPopEntrySList

ExQueryDepthSList

KeInitializeSpinLock