Fungsi RxFinalizeSrvOpen (fcb.h)

RxFinalizeSrvOpen menyelesaikan struktur SRV_OPEN yang diberikan. Pemanggil harus memiliki kunci eksklusif pada FCB yang terkait dengan SRV_OPEN dan kunci bersama atau eksklusif pada kunci tabel NET_ROOT yang terkait dengan FCB.

Sintaks

BOOLEAN RxFinalizeSrvOpen(
  [out] OUT PSRV_OPEN ThisSrvOpen,
  [in]  IN BOOLEAN    RecursiveFinalize,
  [in]  IN BOOLEAN    ForceFinalize
);

Parameter

[out] ThisSrvOpen

Penunjuk ke struktur SRV_OPEN untuk diselesaikan.

[in] RecursiveFinalize

Nilai yang menunjukkan apakah finalisasi harus dilakukan secara rekursif.

[in] ForceFinalize

Nilai yang menunjukkan apakah finalisasi harus dipaksakan, terlepas dari jumlah referensi.

Jika ForceFinalizefalse, maka anggota NodeReferenceCount dari struktur SRV_OPEN yang ditunjukkan oleh ThisSrvOpen harus 0 agar SRV_OPEN diselesaikan.

Nilai kembali

RxFinalizeSrvOpen mengembalikan TRUE pada keberhasilan atau FALSE jika finalisasi tidak terjadi:

Keterangan

Rutinitas RxFinalizeSrvOpen biasanya tidak dipanggil oleh driver pengalih mini jaringan secara langsung. RDBSS memanggil rutinitas ini secara internal ketika jumlah referensi pada SRV_OPEN dikurangi menjadi 1. RDBSS juga memanggil RxFinalizeSrvOpen ketika rutinitas RxFinalizeNetFcb dipanggil dengan RecursiveFinalize diatur ke TRUE. RDBSS memanggil RxFinalizeNetFcb saat paket permintaan I/O diterima untuk IRP_MJ_CLOSE. IRP ini biasanya diterima oleh RDBSS sebagai respons terhadap aplikasi mode pengguna yang meminta operasi penutupan file. Dimungkinkan juga bagi driver kernel lain untuk mengeluarkan IRP seperti itu.

Sebelum memanggil RxFinalizeSrvOpen, pemanggil harus memperoleh kunci eksklusif pada FCB yang terkait dengan SRV_OPEN dan memperoleh kunci bersama atau eksklusif pada kunci tabel NET_ROOT yang terkait dengan FCB.

Jika parameter RecursiveFinalizeTRUE, RxFinalizeSrvOpen akan menyelesaikan struktur FOBX apa pun yang terkait dengan SRV_OPEN ini dengan memanggil RxFinalizeNetFobx dengan parameter RecursiveFinalize yang diatur ke TRUE dan parameter ForceFinalize .

Jika anggota FcbState dari FCB terkait tidak memiliki bendera FCB_STATE_ORPHANED yang ditetapkan, RxFinalizeSrvCall akan memanggil rutinitas MRxForceClosed yang disediakan oleh pengalih mini jaringan untuk menyelesaikan SRV_CALL. Jika struktur SRV_CALL awalnya tidak dialokasikan sebagai bagian dari pembuatan FCB, memori untuk struktur SRV_CALL juga akan dirilis.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header fcb.h (termasuk Mrxfcb.h, Fcb.h)
IRQL <= APC_LEVEL

Lihat juga

MRxForceClosed

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

Struktur SRV_OPEN