Bagikan melalui


Fungsi RxScavengeFobxsForNetRoot (scavengr.h)

RxScavengeFobxsForNetRoot mengais semua struktur FOBX yang terkait dengan struktur NET_ROOT tertentu.

Sintaks

void RxScavengeFobxsForNetRoot(
  PNET_ROOT NetRoot,
  PFCB      PurgingFcb,
  BOOLEAN   SynchronizeWithScavenger
);

Parameter

NetRoot

Penunjuk ke struktur NET_ROOT yang struktur FOBXnya perlu dirampungkan.

PurgingFcb

Penunjuk ke FCB tempat pemulasan harus terjadi.

SynchronizeWithScavenger

Nilai Boolean yang menentukan apakah rutinitas ini harus disinkronkan dengan pemulung.

Nilai kembali

Tidak ada

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 penghapusan menyeluruh dan mengais struktur FOBX. Ini adalah operasi sinkron.

Untuk mengganti nama direktori, semua file di bawah direktori perlu ditutup. Jadi, 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 RxScavengeFobxsForNetRoot memperoleh muteks pemulung, melintasi anggota daftar FobxsToBeFinalized dari objek scavenger dan menambahkan entri apa pun yang ditemukan ke ekor anggota ScavengerFinalizationList dari objek pemulung, dan kemudian melepaskan mutex.

Jika PurgingFcb bukan NULL, dan struktur FCB pembersihan ini tidak sama dengan FCB yang terkait dengan struktur FOBX pada daftar anggota FobxsToBeFinalized dari objek scavenger, RxScavengeFobxsForNetRoot akan memanggil rutinitas callback MRxAreFilesAliased yang disediakan oleh pengalih mini jaringan jika didukung. Panggilan ke MRxAreFilesAliased adalah untuk menentukan apakah PFCB adalah alias untuk FCB yang terkait dengan struktur FOBX.

Pada build yang diperiksa, RxScavengeAllFobxs menyebabkan sistem assert untuk kondisi berikut:

  • Anggota NodeTypeCode dari struktur FOBX tidak RDBSS_NTC_FOBX.

Persyaratan

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

Lihat juga

MRxAreFilesAliased

RxPurgeAllFobxs

RxPurgeRelatedFobxs

RxScavengeAllFobxs