Bagikan melalui


Fungsi RxFsdPostRequest (rxprocs.h)

RxFsdPostRequest mengantre paket permintaan I/O (IRP) yang ditentukan oleh struktur RX_CONTEXT ke antrean pekerja untuk diproses oleh proses sistem file (FSP).

Sintaks

NTSTATUS RxFsdPostRequest(
  [in] IN PRX_CONTEXT RxContext
);

Parameter

[in] RxContext

Penunjuk ke RX_CONTEXT yang berisi IRP yang akan diantrekan ke utas pekerja.

Menampilkan nilai

RxFsdPostRequest mengembalikan nilai berikut:

Menampilkan kode Deskripsi
STATUS_PENDING
Permintaan asinkron dibuat dan telah diantrekan ke utas pekerja untuk diproses nanti. Status permintaan tertunda.

Keterangan

RxFsdPostRequest biasanya dipanggil oleh RDBSS untuk memproses paket permintaan I/O asinkron (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.

Jika anggota Bendera dari struktur RX_CONTEXT yang ditunjukkan oleh parameter RxContext tidak memiliki set bit RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED, maka RxFsdPostRequest akan mencoba mengunci ruang alamat pengguna apa pun yang diperlukan untuk jenis permintaan tertentu. Permintaan yang mengakibatkan perilaku ini didasarkan pada anggota MajorFunction dari struktur RX_CONTEXT yang ditujukkan oleh RxContext dan menyertakan yang berikut:

  • IRP_MJ_DIRECTORY CONTROL saat RxContext->MinorFunction IRP_MN_QUERY_DIRECTORY.
  • IRP_MJ_QUERY_EA
  • IRP_MJ_READ
  • IRP_MJ_SET_EA
  • IRP_MJ_WRITE
Anggota MajorFunctionRxContext akan menentukan antrean kerja mana yang akan diposting permintaan ini. Permintaan IRP_MJ_DEVICE_CONTROL di mana anggota Parameters.DeviceIoControl.IoControlCode IOCTL_REDIR_QUERY_PATH akan diposting ke antrean kerja yang tertunda. Dalam kasus ini, anggota Bendera parameter RxContext akan memiliki set bit RX_CONTEXT_FLAG_FSP_DELAYED_OVERFLOW_QUEUE. Semua permintaan lain diposting ke antrean kerja penting dan anggota Bendera parameter RxContext akan memiliki set bit RX_CONTEXT_FLAG_FSP_CRITICAL_OVERFLOW_QUEUE.

Jika anggota FileObject dari IRP tidak NULL dan permintaan dapat segera diposting untuk diproses (ambang batas untuk antrean perangkat kosong), maka ini akan terjadi. Jika tidak, permintaan akan diposting ke antrean luapan pada volume.

Semua panggilan ke RxFsdPostRequest diantrekan ke utas pekerja untuk memanggil rutinitas RxFsdDispatch yang melewati parameter RxContext .

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header rxprocs.h (termasuk Rxprocs.h, Rxcontx.h)
IRQL <= APC_LEVEL

Lihat juga

RxFsdDispatch