Fungsi IoCsqRemoveNextIrp (wdm.h)
Rutinitas IoCsqRemoveNextIrp menghapus IRP yang cocok berikutnya dalam antrean.
Sintaks
PIRP IoCsqRemoveNextIrp(
[in, out] PIO_CSQ Csq,
[in, optional] PVOID PeekContext
);
Parameter
[in, out] Csq
Arahkan ke tabel pengiriman driver untuk antrean IRP yang batal aman. Tabel pengiriman harus diinisialisasi oleh IoCsqInitialize.
[in, optional] PeekContext
Penunjuk ke nilai konteks yang ditentukan driver. IoCsqRemoveNextIrp meneruskan parameter ini ke rutinitas CsqPeekNextIrp driver. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
Nilai kembali
Rutinitas ini mengembalikan pointer ke IRP yang cocok berikutnya dalam antrean, atau NULL jika tidak ada lagi IRP yang tersedia. Rutinitas hanya mengembalikan IRP yang belum dibatalkan.
Keterangan
IoCsqRemoveNextIrp menggunakan rutinitas pengiriman antrean untuk menghapus IRP. Rutinitas IoCsqRemoveNextIrp :
- Memanggil rutinitas CsqAcquireLock antrean untuk mengunci antrean.
- Memanggil rutinitas CsqPeekNextIrp antrean untuk menemukan IRP yang cocok berikutnya dalam antrean. IoCsqRemoveNextIrp meneruskan nilai parameter PeekContext sebagai parameter PeekContext dari CsqPeekNextIrp. CsqPeekNextIrp mengembalikan pointer ke IRP yang cocok berikutnya, atau NULL jika tidak ada IRP yang cocok.
- Jika nilai pengembalian CsqPeekNextIrp bukan NULL, IoCsqRemoveNextIrp memanggil rutinitas CsqRemoveIrp antrean untuk menghapus IRP.
- Memanggil rutinitas CsqReleaseLock antrean untuk membuka kunci antrean.
Perhatikan bahwa rutinitas IoCsqXxx menggunakan anggota DriverContext[3] dari IRP untuk menyimpan informasi konteks IRP. Driver yang menggunakan rutinitas ini untuk mengantre IRP harus membiarkan anggota tersebut tidak digunakan.
Penelepon IoCsqRemoveNextIrp harus berjalan pada IRQL <= DISPATCH_LEVEL. Rutinitas panggilan balik driver harus bekerja dengan benar di IRQL tersebut.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows XP dan versi Windows yang lebih baru. Driver yang juga harus bekerja pada Windows 2000 dan Windows 98/Me dapat ditautkan ke Csq.lib untuk menggunakan rutinitas. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (lihat bagian Keterangan) |