Bagikan melalui


Fungsi RxPurgeAllFobxs (rxprocs.h)

RxPurgeAllFobxs menghapus menyeluruh semua struktur FOBX yang terkait dengan pengalih mini jaringan.

Sintaks

void RxPurgeAllFobxs(
  PRDBSS_DEVICE_OBJECT RxDeviceObject
);

Parameter

RxDeviceObject

Penunjuk ke objek perangkat pengalih mini yang pembersihannya harus dilakukan.

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. RDBSS menggunakan proses pemulung yang berjalan pada utas terpisah untuk mengais dan membersihkan FOBX yang tidak diperlukan dan struktur lainnya.

Pengalih mini jaringan mungkin memanggil RxPurgeAllFobxs dan RxScavengeAllFobsx sebagai respons terhadap peristiwa perubahan daya PnP.

Rutinitas RxPurgeAllFobxs memperoleh muteks pemulung, melintasi anggota ClosePendingFobxsList pada objek scavenger yang menghapus entri daftar, lalu melepaskan mutex. Jika struktur FOBX bukan NULL, RxPurgeAllFobxs akan membersihkan struktur FOBX dan mencoba memperoleh kunci eksklusif pada struktur FCB terkait. Jika berhasil, RxPurgeAllFobxs kemudian akan mencoba mendereferensikan struktur dan dereferensi NET_FOBX, menyelesaikan, dan merilis struktur FCB.

Pada build yang diperiksa, RxPurgeAllFobxs menyebabkan sistem melakukan ASSERT untuk sejumlah kondisi termasuk yang berikut ini:

  • Anggota Flink dari struktur RxScavenger->ClosePendingFobxsList pada RxDeviceObject adalah NULL.
  • Fobx->NodeTypeCode tidak RDBSS_NTC_FOBX.
  • Anggota Flink dan Blink untuk entri daftar adalah NULL.

Persyaratan

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

Lihat juga

RxPurgeRelatedFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot