次の方法で共有


PMRX_CHANGE_BUFFERING_STATE_CALLDOWN コールバック関数 (mrx.h)

MRxCompleteBufferingStateChangeRequest ルーチンは、バッファー状態変更要求が完了したことをネットワーク ミニ リダイレクターに通知するために RDBSS によって呼び出されます。

構文

PMRX_CHANGE_BUFFERING_STATE_CALLDOWN PmrxChangeBufferingStateCalldown;

NTSTATUS PmrxChangeBufferingStateCalldown(
  [in, out] IN OUT PRX_CONTEXT RxContext,
  [in, out] IN OUT PMRX_SRV_OPEN SrvOpen,
  [in]      IN PVOID MRxContext
)
{...}

パラメーター

[in, out] RxContext

RX_CONTEXT構造体へのポインター。 このパラメーターには、操作を要求している IRP が含まれています。

[in, out] SrvOpen

ネットワーク ミニ リダイレクター コールバック ルーチンで使用するためのコンテキスト パラメーターへのポインター。

[in] MRxContext

変更するSRV_OPEN構造体と関連する FCB 構造体へのポインター。

戻り値

MRxCompleteBufferingStateChangeRequest は、成功した場合にSTATUS_SUCCESS、または次のような適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_NOT_SUPPORTED バッファリング要求の変更のオプションはサポートされていません。

注釈

MRxCompleteBufferingStateChangeRequest を呼び出す前に、RDBSS:

  • FCB 構造体の排他ロックを取得します。

  • SrvOpen-Fcb>FcbState メンバーをFCB_STATE_BUFFERSTATE_CHANGINGに設定します。

  • RxContext パラメーターが指すRX_CONTEXT構造体の次のメンバーを変更します。

    • pRelevantSrvOpen は、SRV_OPEN構造体に設定されます。
    • pFcb は FCB 構造体に設定されます。
    • pFobx は FOBX 構造体に設定されます。

ロック バッファリングが有効になっている場合、 MRxCompleteBufferingStateChangeRequest はバイト範囲ロックをサーバーにフラッシュする必要があります。 ロックされたリージョンの一覧は、RX_CONTEXT構造体の LowIoContext.ParamsFor.Locks.LockList メンバーのネットワーク ミニ リダイレクターに渡されます。

サーバー メッセージ ブロック (SMB) リダイレクターは 、MRxCompleteBufferingStateChangeRequest を使用して oplock ブレーク応答を送信するか、ファイルが使用されなくなった場合に oplock 中断時にハンドルを閉じます。 サーバーにフラッシュする必要があるバイト範囲ロックは、RX_CONTEXT構造体の LowIoContext.ParamsFor.Locks.LockList メンバーのネットワーク ミニ リダイレクターに渡されます。 新しい oplock レベルは、 MrxContext パラメーターで渡されます。

RDBSS は 、MRxCompleteBufferingStateChangeRequest からの戻り値を無視します。

要件

要件
対象プラットフォーム デスクトップ
Header mrx.h (Mrx.h を含む)

こちらもご覧ください

MRxComputeNewBufferingState

MRxGetConnectionId