Fungsi IoCsqInitializeEx (wdm.h)

Rutinitas IoCsqInitializeEx menginisialisasi tabel pengiriman untuk antrean IRP yang batal aman.

Sintaks

NTSTATUS IoCsqInitializeEx(
  [out] PIO_CSQ                       Csq,
  [in]  PIO_CSQ_INSERT_IRP_EX         CsqInsertIrp,
  [in]  PIO_CSQ_REMOVE_IRP            CsqRemoveIrp,
  [in]  PIO_CSQ_PEEK_NEXT_IRP         CsqPeekNextIrp,
  [in]  PIO_CSQ_ACQUIRE_LOCK          CsqAcquireLock,
  [in]  PIO_CSQ_RELEASE_LOCK          CsqReleaseLock,
  [in]  PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);

Parameter

[out] Csq

Penunjuk ke struktur IO_CSQ yang akan diinisialisasi oleh IoCsqInitializeEx.

[in] CsqInsertIrp

Arahkan ke fungsi CsqInsertIrpEx yang ditentukan driver untuk antrean IRP pembatalan aman driver.

[in] CsqRemoveIrp

Penunjuk ke fungsi CsqRemoveIrp yang ditentukan driver untuk antrean IRP batal-aman driver.

[in] CsqPeekNextIrp

Arahkan ke fungsi CsqPeekNextIrp yang ditentukan driver untuk antrean IRP pembatalan-aman driver.

[in] CsqAcquireLock

Penunjuk ke fungsi CsqAcquireLock yang ditentukan driver untuk antrean IRP batal-aman driver.

[in] CsqReleaseLock

Penunjuk ke fungsi CsqReleaseLock yang ditentukan driver untuk antrean IRP batal-aman driver.

[in] CsqCompleteCanceledIrp

Penunjuk ke fungsi CsqCompleteCanceledIrp yang ditentukan driver untuk antrean IRP batal-aman driver.

Nilai kembali

IoCsqInitializeEx mengembalikan STATUS_SUCCESS pada keberhasilan, atau kode kesalahan yang sesuai pada kegagalan.

Keterangan

Rutinitas IoCsqInitialize dan IoCsqInitializeEx menginisialisasi struktur IO_CSQ yang menjelaskan antrean IRP pembatalan aman driver. Anda dapat menggunakan IoCsqInitializeEx untuk menentukan antrean IRP dengan kemampuan yang diperluas alih-alih yang ditentukan oleh IoCsqInitialize:

  • Driver mengimplementasikan rutinitas CsqInsertIrpEx daripada rutinitas CsqInsertIrp . CsqInsertIrpEx mengambil parameter tambahan, InsertContext. Ketika driver memanggil IoCsqInsertIrpEx untuk menyisipkan IRP, driver menentukan nilai yang diteruskan sebagai InsertContext.
  • IoCsqInsertIrpEx mengembalikan nilai pengembalian CsqInsertIrpEx. Driver dapat menggunakan nilai pengembalian untuk menunjukkan apakah operasi penyisipan berhasil atau gagal.
Jika tidak, efek IoCsqInitializeEx identik dengan IoCsqInitialize. Untuk informasi selengkapnya, lihat Antrean IRP Batal-Aman.

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.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Server 2003 dan versi yang lebih baru dari sistem operasi Windows. Rutinitas ini juga tersedia di pustaka Csq.lib yang dikirim dengan Windows Driver Kit (WDK) dan Driver Development Kit (DDK) untuk Windows Server 2003. Driver yang juga harus bekerja pada Windows XP, Windows 2000, dan Windows 98/Me dapat menautkan 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 Tingkat apa pun

Lihat juga

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IO_CSQ_IRP_CONTEXT

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp