Fungsi KsForwardAndCatchIrp (ks.h)
Fungsi KsForwardAndCatchIrp meneruskan IRP ke driver yang ditentukan setelah menginisialisasi lokasi tumpukan berikutnya, dan mendapatkan kembali kontrol IRP saat selesai dari driver tersebut. Fungsi ini digunakan dengan perangkat yang dapat ditumpuk dan tidak menggunakan objek file untuk berkomunikasi.
Jika objek file sedang digunakan, pemanggil harus menginisialisasi lokasi tumpukan saat ini dengan objek file tersebut sebelum memanggil fungsi KsForwardAndCatchIrp . Fungsi ini memverifikasi bahwa ada lokasi tumpukan baru untuk disalin sebelum mencoba melakukannya. Jika tidak ada lokasi tumpukan baru, fungsi akan mengembalikan STATUS_INVALID_DEVICE_REQUEST. Terlepas dari apakah lokasi tumpukan baru ada, IRP tidak selesai.
Sintaks
KSDDKAPI NTSTATUS KsForwardAndCatchIrp(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp,
[in] PFILE_OBJECT FileObject,
[in] KSSTACK_USE StackUse
);
Parameter
[in] DeviceObject
Menentukan perangkat yang akan diteruskan ke IRP.
[in] Irp
Menentukan IRP yang sedang diteruskan ke driver yang ditentukan.
[in] FileObject
Menentukan nilai objek file untuk disalin ke lokasi tumpukan berikutnya. Ini bisa NULL untuk mengatur tidak ada objek file, tetapi nilai selalu disalin ke lokasi tumpukan berikutnya. Jika objek file saat ini harus dipertahankan, objek harus diteruskan dalam parameter ini.
[in] StackUse
Menentukan nilai yang dijumlahkan oleh KSSTACK_USE. Jika nilainya adalah KsStackCopyToNewLocation, parameter disalin ke lokasi tumpukan berikutnya. Jika nilainya adalah KsStackReuseCurrentLocation, lokasi tumpukan saat ini digunakan kembali saat IRP diteruskan dan lokasi tumpukan dikembalikan ke lokasi saat ini. Jika nilainya adalah KsStackUseNewLocation, lokasi tumpukan baru digunakan apa adanya.
Nilai kembali
Fungsi KsForwardAndCatchIrp mengembalikan hasil IoCallDriver, atau mengembalikan status yang tidak valid jika tidak ada lagi kedalaman tumpukan yang tersedia.
Keterangan
Jenis KSSTACK_USE enumerasi menentukan bagaimana tumpukan IRP digunakan saat meneruskan IRP ke driver berikutnya.
Enumeration | Deskripsi |
---|---|
KsStackCopyToNewLocation | Menunjukkan bahwa parameter akan disalin ke lokasi tumpukan berikutnya. |
KsStackReuseCurrentLocation | Menunjukkan bahwa lokasi tumpukan saat ini akan digunakan kembali. |
KsStackUseNewLocation | Menunjukkan bahwa lokasi tumpukan berikutnya akan digunakan tanpa modifikasi. |
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | ks.h (termasuk Ks.h) |
Pustaka | Ks.lib |