Fungsi IoStartPacket (ntifs.h)

Rutinitas IoStartPacket memanggil rutinitas StartIo driver dengan IRP yang diberikan atau memasukkan IRP ke dalam antrean perangkat yang terkait dengan objek perangkat yang diberikan jika perangkat sudah sibuk.

Sintaks

void IoStartPacket(
  [in]           PDEVICE_OBJECT DeviceObject,
  [in]           PIRP           Irp,
  [in, optional] PULONG         Key,
  [in, optional] PDRIVER_CANCEL CancelFunction
);

Parameter

[in] DeviceObject

Arahkan ke objek perangkat target untuk IRP.

[in] Irp

Arahkan ke IRP yang akan diproses.

[in, optional] Key

Penunjuk ke nilai yang menentukan tempat menyisipkan paket ke dalam antrean perangkat. Jika ini nol, paket dimasukkan di ekor antrean perangkat.

[in, optional] CancelFunction

Menentukan titik masuk untuk rutinitas Batal yang disediakan driver.

Nilai kembali

Tidak ada

Keterangan

Jika driver sudah sibuk memproses permintaan untuk objek perangkat target, maka paket diantrekan dalam antrean perangkat. Jika tidak, rutinitas ini memanggil rutinitas StartIo driver dengan IRP yang ditentukan.

Jika pointer CancelFunction non-NULL disediakan, pointer diatur dalam IRP sehingga rutinitas Batalkan driver dipanggil jika IRP dibatalkan sebelum selesai.

Driver yang tidak memiliki rutinitas StartIo tidak dapat memanggil IoStartPacket.

Penelepon IoStartPacket harus berjalan di IRQL <= DISPATCH_LEVEL. Biasanya, rutinitas ini dipanggil dari rutinitas Pengiriman driver perangkat di IRQL = PASSIVE_LEVEL.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000
Target Platform Universal
Header ntifs.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (lihat bagian Keterangan)

Lihat juga

DEVICE_OBJECT

IoMarkIrpPending

IoSetCancelRoutine

IoStartNextPacket

IoStartNextPacketByKey