RxChangeBufferingState 函式 (rxprocs.h)
呼叫 RxChangeBufferingState 來處理緩衝狀態變更要求。
語法
NTSTATUS RxChangeBufferingState(
PSRV_OPEN SrvOpen,
PVOID Context,
BOOLEAN ComputeNewState
);
參數
SrvOpen
要變更之SRV_OPEN數據結構的指標。
Context
可供網路迷你重新導向器回呼使用之內容參數的指標。
ComputeNewState
值,指出是否要計算新的緩衝狀態。 當此值設定為 TRUE時,新的緩衝狀態是由呼叫網路迷你重新導向器來計算新的緩衝狀態來決定。 當這個值 FALSE時,新的緩衝狀態是由傳入 SrvOpen 結構之 BufferingFlags 成員所決定。
傳回值
RxChangeBufferingState 一律會傳回STATUS_SUCCESS此例程是否成功,或是否發生錯誤。 如果發生錯誤,緩衝處理狀態會變更,因此不會啟用任何緩衝處理。
言論
如果停用此FCB的本機緩衝處理(FCB_STATE_DISABLE_LOCAL_BUFFERING是在FCB的FcbState結構成員中設定),這會停用與FCB上開啟模式和任何預設緩衝選項無關的本機緩衝。 設定FCB_STATE_DISABLE_LOCAL_BUFFERING時,RxChangeBufferingState 所設定的新緩衝狀態將會停用所有緩衝處理。
如果 ComputeNewStateTRUE,則會呼叫網路迷你重新導向器所導出的 MRxComputeNewBufferingState 例程,以計算要使用的新緩衝狀態。
如果以獨佔方式取得 FCB,且 ComputeNewStateFALSE。 然後 RxChangeBufferingState 會設定下列緩衝狀態選項:
- 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
- ShareAccess.SharedRead
- ShareAccess.SharedWrite
- ShareAccess.SharedDelete
- FCB_STATE_WRITEBUFFERING_ENABLED
- FCB_STATE_READBUFFERING_ENABLED
- FCB_STATE_OPENSHARING_ENABLED
- FCB_STATE_COLLAPSING_ENABLED
- FCB_STATE_FILESIZECACHEING_ENABLED
- FCB_STATE_FILETIMECACHEING_ENABLED
從 RxChangeBufferingState結束時,資源擁有權沒有變更。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | rxprocs.h (包括 Rxprocs.h、Struchdr.h、Fcb.h) |
IRQL | <= APC_LEVEL |
另請參閱
RxIndicateChangeOfBufferingState