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 終了しても、リソースの所有権は変更されません。
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | デスクトップ |
| ヘッダー | rxprocs.h (Rxprocs.h、Struchdr.h、Fcb.h を含む) |
| IRQL | <= APC_LEVEL |
関連項目
RxIndicateChangeOfBufferingState の
RxIndicateChangeOfBufferingStateForSrvOpen の
SRV_OPEN構造体 を する