Bagikan melalui


Fungsi RxStopMinirdr (mrx.h)

RxStopMinirdr dipanggil untuk menghentikan pengalihan mini jaringan yang sebelumnya telah dimulai. Sebagai bagian dari RxStopMinirdr, RDBSS juga akan membatalkan pendaftaran driver pengalihan mini jaringan sebagai penyedia konvensi penamaan universal (UNC) dengan Beberapa Penyedia UNC (MUP) jika driver menunjukkan dukungan untuk nama UNC.

Sintaks

NTSTATUS RxStopMinirdr(
  [in]  IN PRX_CONTEXT RxContext,
  [out] OUT PBOOLEAN   PostToFsp
);

Parameter

[in] RxContext

Penunjuk ke struktur RX_CONTEXT untuk digunakan untuk mendapatkan objek perangkat dan menentukan apakah ini adalah proses sistem file.

[out] PostToFsp

Penunjuk ke nilai logis yang diatur ke TRUE saat dikembalikan jika permintaan harus diposting untuk diproses nanti oleh proses sistem file.

Menampilkan nilai

RxStopMinirdr mengembalikan STATUS_SUCCESS jika urutan berhenti berhasil atau salah satu nilai kesalahan berikut:

Menampilkan kode Deskripsi
STATUS_PENDING Urutan berhenti untuk RDBSS dan pengalih mini jaringan harus diselesaikan dalam konteks proses sistem file. Jika panggilan ke RxStopMinirdr berasal dari proses yang berbeda (permintaan mode pengguna, misalnya), maka permintaan akan diposting untuk pemrosesan nanti dan STATUS_PENDING akan dikembalikan. Kesalahan ini juga dapat dikembalikan jika kunci RDBSS internal tertentu tidak dapat diperoleh tanpa menunggu.
STATUS_REDIRECTOR_HAS_OPEN_HANDLES Pengalih-mini jaringan memiliki handel terbuka dan tidak dapat dihentikan saat ini.
STATUS_REDIRECTOR_STOPPED Pengalih-mini jaringan sudah dihentikan.

Keterangan

Ketika permintaan berhenti dikeluarkan untuk RDBSS, mungkin ada permintaan yang sedang berlangsung di RDBSS. Beberapa permintaan dapat dibatalkan sementara permintaan yang tersisa perlu diproses hingga selesai.

Ada sejumlah strategi yang dapat digunakan untuk menutup RDBSS. Saat ini, pendekatan yang paling konservatif digunakan. Pembatalan operasi yang dapat dibatalkan dan operasi berhenti ditahan hingga permintaan yang tersisa berjalan hingga selesai.

RDBSS RxStopMinirdr biasanya dipanggil sebagai akibat dari permintaan FSCTL atau IOCTL dari aplikasi atau layanan mode pengguna untuk menghentikan pengalih mini jaringan, meskipun panggilan ini juga dapat dilakukan dari pengalih mini jaringan atau sebagai bagian dari pemrosesan matikan oleh sistem operasi.

Setelah panggilan ke RxStopMinirdr dikeluarkan, satu-satunya operasi yang diizinkan oleh RDBSS dan diteruskan ke pengalih mini jaringan adalah permintaan untuk paket permintaan I/O berikut:

  • IRP_MJ_CLEANUP
  • IRP_MJ_CLOSE

Urutan berhenti untuk RDBSS dan pengalih mini jaringan harus diselesaikan dalam konteks proses sistem file. Jika panggilan ke RxStopMinirdr berasal dari proses yang berbeda (permintaan mode pengguna, misalnya), maka permintaan harus diposting untuk pemrosesan nanti dan STATUS_PENDING akan dikembalikan. Dalam hal ini, ID pengguna yang efektif (ID masuk) pemanggil disimpan di anggota FsdUid dari parameter RxContext . Selain itu, Jika kunci RDBSS internal tertentu tidak dapat diperoleh tanpa menunggu, STATUS_PENDING dikembalikan dan PostToFsp diatur ke TRUE. Ketika STATUS_PENDING dikembalikan, RxStopMinirdr akan diposting untuk diproses nanti oleh proses sistem file dan selesai.

Jika pengalih mini jaringan menunjukkan dukungan untuk UNC saat mendaftar dengan RDBSS (parameter Kontrol ke RxRegisterMinirdr), RxStopMinirdr akan mencoba membatalkan pendaftaran DeviceName dari pengalihan mini jaringan sebagai penyedia UNC dengan MUP (memanggil FsRtlDeregisterUncProvider atas nama pengalih mini jaringan). RxStopMinirdr juga membatalkan pendaftaran sistem file dengan manajer I/O (memanggil IoUnregisterFileSystem) atas nama pengalih mini jaringan).

Rutinitas RxStopMinirdr kemudian memanggil rutinitas panggilan balik MrxStop mini-redirector jaringan jika rutinitas ini diterapkan. Jika tidak ada FCB aktif yang tersisa, STATUS_SUCCESS dikembalikan. Jika ada beberapa FCB aktif yang tersisa, STATUS_REDIRECTOR_HAS_OPEN_HANDLES dikembalikan. Dalam kedua kasus, dispatcher RDBSS untuk pengalihan dipisahkan ke bawah dan status internal pengalih mini jaringan di RDBSS diatur ke RDBSS_STARTABLE.

Persyaratan

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

Lihat juga

FsRtlDeregisterUncProvider

IoUnregisterFileSystem

RxRegisterMinirdr

RxStartMiniRdr

RxUnregisterMinirdr

RxpUnregisterMinirdr