PMRX_CHANGE_BUFFERING_STATE_CALLDOWN fungsi panggilan balik (mrx.h)

RutinitasMRxCompleteBufferingStateChangeRequest dipanggil oleh RDBSS untuk memberi tahu pengalih mini jaringan bahwa permintaan perubahan status buffering telah selesai.

Sintaks

PMRX_CHANGE_BUFFERING_STATE_CALLDOWN PmrxChangeBufferingStateCalldown;

NTSTATUS PmrxChangeBufferingStateCalldown(
  [in, out] IN OUT PRX_CONTEXT RxContext,
  [in, out] IN OUT PMRX_SRV_OPEN SrvOpen,
  [in]      IN PVOID MRxContext
)
{...}

Parameter

[in, out] RxContext

Penunjuk ke struktur RX_CONTEXT. Parameter ini berisi IRP yang meminta operasi.

[in, out] SrvOpen

Penunjuk ke parameter konteks untuk digunakan oleh rutinitas panggilan balik pengalih mini jaringan.

[in] MRxContext

Penunjuk ke struktur SRV_OPEN dan struktur FCB terkait yang akan diubah.

Nilai kembali

MRxCompleteBufferingStateChangeRequest mengembalikan STATUS_SUCCESS pada keberhasilan atau nilai NTSTATUS yang sesuai, seperti berikut ini:

Menampilkan kode Deskripsi
STATUS_NOT_SUPPORTED Opsi dalam perubahan permintaan buffering tidak didukung.

Keterangan

Sebelum memanggil MRxCompleteBufferingStateChangeRequest, RDBSS:

  • Memperoleh kunci eksklusif pada struktur FCB.

  • Mengatur anggota FcbState dari SrvOpen-Fcb> ke FCB_STATE_BUFFERSTATE_CHANGING.

  • Memodifikasi anggota berikut dalam struktur RX_CONTEXT yang ditujukkan oleh parameter RxContext :

    • pRelevantSrvOpen diatur ke struktur SRV_OPEN.
    • pFcb diatur ke struktur FCB.
    • pFobx diatur ke struktur FOBX.

Jika buffering kunci diaktifkan, MRxCompleteBufferingStateChangeRequest perlu menghapus kunci rentang byte ke server. Daftar wilayah terkunci diteruskan ke pengalih mini jaringan di anggota LowIoContext.ParamsFor.Locks.LockList dari struktur RX_CONTEXT.

Pengalih Blok Pesan Server (SMB) menggunakan MRxCompleteBufferingStateChangeRequest untuk mengirim respons pemutusan oplock atau untuk menutup handel pada jeda oplock jika file tidak lagi digunakan. Kunci rentang byte yang perlu dihapus ke server diteruskan ke pengalih mini jaringan di anggota LowIoContext.ParamsFor.Locks.LockList dari struktur RX_CONTEXT. Tingkat oplock baru diteruskan dalam parameter MrxContext .

RDBSS mengabaikan nilai pengembalian dari MRxCompleteBufferingStateChangeRequest.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header mrx.h (termasuk Mrx.h)

Lihat juga

MRxComputeNewBufferingState

MRxGetConnectionId