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 を含む) |