Bagikan melalui


Fungsi RxFsdDispatch (mrx.h)

RxFsdDispatch mengimplementasikan pengiriman driver sistem file (FSD) untuk RDBSS untuk memproses paket permintaan I/O (IRP). Penunjuk ke rutinitas ini disalin melalui tabel pengiriman driver perangkat untuk driver pengalihan mini jaringan oleh rutinitas RxDriverEntry ketika RDBSS diinisialisasi.

Sintaks

NTSTATUS RxFsdDispatch(
  [in] IN PRDBSS_DEVICE_OBJECT RxDeviceObject,
  [in] IN PIRP                 Irp
);

Parameter

[in] RxDeviceObject

Penunjuk ke objek perangkat RDBSS untuk pengalih mini jaringan ini.

[in] Irp

Penunjuk ke paket permintaan I/O yang sedang diproses.

Nilai kembali

RxFsdDispatch mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_DEVICE_REQUEST Permintaan dibuat pada objek perangkat yang tidak valid. Misalnya, kesalahan ini dikembalikan jika objek sistem file diteruskan sebagai parameter RxDeviceObject . Nilai status ini menunjukkan kegagalan.
STATUS_OBJECT_NAME_INVALID Permintaan yang tidak valid dibuat untuk membuat pipa bernama atau mailslot (anggota MajorFunctiondari Irp IRP_MJ_CREATE_MAILSLOT atau IRP_MJ_CREATE_NAMED_PIPE). Nilai status ini menunjukkan kegagalan.
STATUS_PENDING Permintaan asinkron dibuat dan status permintaan tertunda.
STATUS_SUCCESS Panggilan rutin RxFsdDispatch berhasil.

Keterangan

RxFsdDispatch dipanggil oleh RDBSS untuk memproses paket permintaan I/O (IRP). IRP ini biasanya diterima oleh RDBSS sebagai respons terhadap aplikasi mode pengguna yang meminta operasi pada file. Dimungkinkan juga bagi driver kernel lain untuk mengeluarkan IRP seperti itu.

Penunjuk ke rutinitas RxFsdDispatch disalin melalui tabel pengiriman driver untuk driver pengalih mini jaringan ketika rutinitas RxDriverEntry dipanggil untuk menginisialisasi RDBSS.

Secara internal, RDBSS mempertahankan dua vektor pengiriman:

  • Vektor pengiriman umum untuk sebagian besar operasi.

  • Vektor pengiriman privat untuk operasi FCB perangkat file.

Jika IRP adalah permintaan IRP_MJ_CREATE, RxFsdDispatch akan menggunakan vektor pengiriman umum. Jika IRP adalah untuk operasi pada FCB objek file, RxFsdDispatch akan memeriksa apakah vektor pengiriman privat harus digunakan. Jika tidak, vektor pengiriman umum akan digunakan untuk memproses IRP.

RxFsdDispatch memanggil rutinitas internal untuk memproses runtime integrasi standar yang sebagian besar menghasilkan panggilan ke salah satu rutinitas panggilan balik yang diterapkan oleh driver pengalih mini jaringan.

Beberapa IRP diperlakukan khusus dan ditangani secara internal oleh RDBSS. Misalnya, IRP_MJ_SYSTEM_CONTROL digunakan secara internal jika WMI diaktifkan. permintaan IRP_MJ_CREATE_MAILSLOT atau IRP_MJ_CREATE_NAMED_PIPE diperlakukan secara khusus dan ditolak (kesalahan STATUS_OBJECT_NAME_INVALID dikembalikan).

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header mrx.h (termasuk Mrx.h, Rxstruc.h, Struchdr.h)
IRQL <= APC_LEVEL

Lihat juga

RxDriverEntry