Bagikan melalui


Fungsi RxChangeBufferingState (rxprocs.h)

RxChangeBufferingState dipanggil untuk memproses permintaan perubahan status buffering.

Sintaks

NTSTATUS RxChangeBufferingState(
  PSRV_OPEN SrvOpen,
  PVOID     Context,
  BOOLEAN   ComputeNewState
);

Parameter

SrvOpen

Penunjuk ke struktur data SRV_OPEN yang akan diubah.

Context

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

ComputeNewState

Nilai yang menunjukkan apakah status buffering baru akan dihitung. Ketika nilai ini diatur ke TRUE, status buffering baru ditentukan dengan memanggil pengalih mini jaringan untuk menghitung status buffering baru. Ketika nilai ini FALSE, status buffering baru ditentukan oleh anggota BufferingFlags dari yang diteruskan dalam struktur SrvOpen .

Nilai kembali

RxChangeBufferingState selalu mengembalikan STATUS_SUCCESS apakah rutinitas ini berhasil atau jika terjadi kesalahan. Jika terjadi kesalahan, status buffering diubah sehingga tidak ada buffering yang diaktifkan.

Keterangan

Jika buffering lokal dinonaktifkan untuk FCB ini (FCB_STATE_DISABLE_LOCAL_BUFFERING diatur dalam anggota struktur FcbState FCB), ini akan menonaktifkan buffering lokal independen dari mode terbuka pada FCB dan opsi buffering default apa pun. Saat FCB_STATE_DISABLE_LOCAL_BUFFERING diatur, status buffering baru yang ditetapkan oleh RxChangeBufferingState adalah menonaktifkan semua buffering.

Jika ComputeNewStateTRUE, maka rutinitas MRxComputeNewBufferingState yang diekspor oleh pengalih mini jaringan dipanggil untuk menghitung status buffering baru untuk digunakan.

Jika FCB diperoleh secara eksklusif dan ComputeNewState adalah FALSE. kemudian RxChangeBufferingState akan mengatur opsi status buffering berikut:

  • FCB_STATE_WRITECACHING_ENABLED
  • FCB_STATE_FILESIZECACHEING_ENABLED
  • FCB_STATE_FILETIMECACHEING_ENABLED
  • FCB_STATE_WRITEBUFFERING_ENABLED
  • FCB_STATE_LOCK_BUFFERING_ENABLED
  • FCB_STATE_READBUFFERING_ENABLED
  • FCB_STATE_READCACHING_ENABLED
Untuk memperoleh FCB secara eksklusif mengharuskan FCB tidak boleh dibuka dengan salah satu nilai berikut:
  • ShareAccess.SharedRead
  • ShareAccess.SharedWrite
  • ShareAccess.SharedDelete
RDBSS saat ini tidak menggunakan sejumlah opsi buffering yang mungkin, sehingga opsi ini diabaikan secara internal oleh RDBSS ketika mereka diatur menggunakan RxChangeBufferingState. Opsi buffering yang diabaikan ini meliputi yang berikut ini:
  • FCB_STATE_WRITEBUFFERING_ENABLED
  • FCB_STATE_READBUFFERING_ENABLED
  • FCB_STATE_OPENSHARING_ENABLED
  • FCB_STATE_COLLAPSING_ENABLED
  • FCB_STATE_FILESIZECACHEING_ENABLED
  • FCB_STATE_FILETIMECACHEING_ENABLED
Jika status buffering FCB_STATE_WRITECACHING_ENABLED diubah ke nonaktif, FCB apa pun dalam cache sistem akan dihapus.

Saat keluar dari RxChangeBufferingState, tidak ada perubahan dalam kepemilikan sumber daya.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header rxprocs.h (termasuk Rxprocs.h, Struchdr.h, Fcb.h)
IRQL <= APC_LEVEL

Lihat juga

RxIndicateChangeOfBufferingState

RxIndicateChangeOfBufferingStateForSrvOpen

Struktur SRV_OPEN