Makro NdisInterlockedInsertTailList (ndis.h)
Fungsi NdisInterlockedInsertTailList menyisipkan entri, biasanya paket, di ekor daftar yang ditautkan dua kali sehingga akses ke daftar disinkronkan dengan cara multiprosesor-aman.
Sintaks
void NdisInterlockedInsertTailList(
[in] _ListHead,
[in] _ListEntry,
[in] _SpinLock
);
Parameter
[in] _ListHead
Penunjuk ke kepala daftar yang ditautkan ganda tempat entri akan disisipkan.
[in] _ListEntry
Penunjuk ke entri yang akan disisipkan di akhir daftar.
[in] _SpinLock
Penunjuk ke kunci putar yang disediakan penelepon, digunakan untuk menyinkronkan akses ke daftar.
Nilai kembali
Tidak ada
Keterangan
Sebelum memanggil NdisInterlockedInsertTailList, driver harus menginisialisasi variabel di ListHead dengan fungsi NdisInitializeListHead dan variabel di SpinLock dengan fungsi NdisAllocateSpinLock . Driver juga harus menyediakan penyimpanan residen untuk variabel ini dan untuk antrean internalnya.
Kunci putar yang disediakan penelepon mencegah fungsi lain mengakses antrean internal driver sementara NdisInterlockedInsertTailList memasukkan entri yang diberikan, bahkan ketika driver berjalan pada mesin multiprosesor.
NdisInterlockedInsertTailList menaikkan IRQL ke DISPATCH_LEVEL ketika memperoleh kunci putar yang diberikan dan memulihkan IRQL asli sebelum mengembalikan kontrol. Akibatnya, fungsi driver apa pun yang memanggil NdisInterlockedInsertTailList tidak dapat menjadi kode yang dapat dipaginasi.
Untuk mengonversi nilai yang dikembalikan kembali ke alamat entri yang disisipkan, driver dapat menggunakan makro CONTAINING_RECORD .
Jika NdisInterlockedInsertTailList dipanggil di IRQL >= DISPATCH_LEVEL, penyimpanan untuk parameter ListHead dan entri daftar harus residen.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung untuk driver NDIS 6.0 dan NDIS 5.1 (lihat NdisInterlockedInsertTailList (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat NdisInterlockedInsertTailList (NDIS 5.1)) di Windows XP. |
Target Platform | Universal |
Header | ndis.h (termasuk Ndis.h) |
Pustaka | Ndis.lib |
IRQL | Tingkat apa pun |
Lihat juga
NdisInterlockedInsertHeadList NdisInterlockedRemoveHeadListSaran 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