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
FCB を排他的に取得するには、FCB を次のいずれかの値で開かないようにする必要があります。
  • ShareAccess.SharedRead
  • ShareAccess.SharedWrite
  • ShareAccess.SharedDelete
RDBSS では現在、さまざまなバッファリング オプションが使用されていないため、RxChangeBufferingState を使用して設定されている場合、これらのオプションは RDBSS によって内部的に無視されます。 これらの無視されるバッファリング オプションには、次のものがあります。
  • FCB_STATE_WRITEBUFFERING_ENABLED
  • FCB_STATE_READBUFFERING_ENABLED
  • FCB_STATE_OPENSHARING_ENABLED
  • FCB_STATE_COLLAPSING_ENABLED
  • FCB_STATE_FILESIZECACHEING_ENABLED
  • FCB_STATE_FILETIMECACHEING_ENABLED
FCB_STATE_WRITECACHING_ENABLEDバッファリング状態が off に変更されると、システム キャッシュ内のすべての FCB がフラッシュされます。

RxChangeBufferingState 終了しても、リソースの所有権は変更されません。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー rxprocs.h (Rxprocs.h、Struchdr.h、Fcb.h を含む)
IRQL <= APC_LEVEL

関連項目

RxIndicateChangeOfBufferingState

RxIndicateChangeOfBufferingStateForSrvOpen

SRV_OPEN構造体 する