Fungsi RxPurgeRelatedFobxs (scavengr.h)
RxPurgeRelatedFobxs menghapus menyeluruh semua struktur FOBX yang terkait dengan struktur NET_ROOT.
Sintaks
NTSTATUS RxPurgeRelatedFobxs(
PNET_ROOT NetRoot,
PRX_CONTEXT RxContext,
BOOLEAN AttemptFinalization,
PFCB PurgingFcb
);
Parameter
NetRoot
Penunjuk ke struktur NET_ROOT yang struktur FOBXnya perlu dibersihkan.
RxContext
Penunjuk ke struktur RX_CONTEXT.
AttemptFinalization
Nilai Boolean yang menunjukkan apakah upaya untuk menyelesaikan dan merilis struktur FCB terkait harus terjadi.
PurgingFcb
Penunjuk ke struktur FCB yang pembersihannya harus terjadi.
Nilai kembali
RxPurgeRelatedFobxs mengembalikan STATUS_SUCCESS pada keberhasilan atau salah satu nilai kesalahan berikut pada kegagalan:
Menampilkan kode | Deskripsi |
---|---|
|
Tidak ada struktur FOBX terkait yang dapat dibersihkan. |
Keterangan
Saat pembersihan, tidak ada lagi handel pengguna yang terkait dengan objek file. Dalam kasus seperti itu, jendela waktu antara penutupan dan pembersihan ditentukan oleh referensi tambahan yang dikelola oleh manajer memori dan manajer cache. Saat dibersihkan, FOBX dimasukkan ke daftar tertunda tertutup dan dihapus dari daftar yang sesuai ketika operasi penutupan diterima. Sementara itu, jika operasi terbuka gagal dengan status ACCESS_DENIED, maka RDBSS dapat memaksa pembersihan struktur FOBX. Ini adalah operasi sinkron.
Untuk penggantian nama direktori, semua file di bawah direktori perlu ditutup. Pengalih mini jaringan mungkin memanggil RxPurgeRelatedFobxs dan RxScavengeFobxsForNetRoot sebagai respons terhadap permintaan IRP_MJ_SET_INFORMATION untuk mengganti nama direktori. Dengan meneruskan struktur NET_ROOT untuk direktori dan NULL FCB, semua struktur FOBX yang terkait dengan direktori akan dihapus menyeluruh dan dipulihkan.
Rutinitas RxPurgeRelatedFobxs mencoba menghapus menyeluruh semua struktur FOBX yang memiliki operasi penutupan tertunda sebelum permintaan pembersihan diterima. Rutinitas RxPurgeRelatedFobxs memperoleh mutex pemulung, melintasi anggota ClosePendingFobxsList pada objek pemulung yang menghapus entri daftar, lalu merilis mutex.
Jika AttemptFinalize diatur ke TRUE, RxPurgeRelatedFobxs akan mencoba menyelesaikan dan merilis FCB terkait.
Jika PFCB bukan NULL, dan strkuture FCB pembersihan ini tidak sama dengan struktur FCB yang terkait dengan FOBX pada anggota ClosePendingFobxsList , maka RxPurgeRelatedFobxs akan memanggil rutinitas callback MRxAreFilesAliased yang disediakan oleh pengalih mini jaringan jika rutinitas ini didukung. Panggilan ke MRxAreFilesAliased adalah untuk menentukan apakah PFCB adalah alias untuk FCB yang terkait dengan struktur FOBX.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | scavengr.h (termasuk Rxprocs.h) |
IRQL | <= APC_LEVEL |