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 によって設定される新しいバッファリング状態は、すべてのバッファリングを無効にします。
ComputeNewState が TRUE の場合、ネットワーク ミニ リダイレクターによってエクスポートされた MRxComputeNewBufferingState ルーチンが呼び出され、使用する新しいバッファリング状態が計算されます。
FCB が排他的に取得され、 ComputeNewState が FALSE の場合。 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 からの終了時に、リソースの所有権に変更はありません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | rxprocs.h (Rxprocs.h、Struchdr.h、Fcb.h を含む) |
IRQL | <= APC_LEVEL |
こちらもご覧ください
RxIndicateChangeOfBufferingState