PMRX_CHANGE_BUFFERING_STATE_CALLDOWN回调函数 (mrx.h)

RDBSS 调用MRxCompleteBufferingStateChangeRequest 例程,以通知网络微型重定向程序缓冲状态更改请求已完成。

语法

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 返回成功或相应的 NTSTATUS 值STATUS_SUCCESS,例如:

返回代码 描述
STATUS_NOT_SUPPORTED 不支持缓冲请求更改中的选项。

言论

在调用 MRxCompleteBufferingStateChangeRequest之前,RDBSS:

  • 获取 FCB 结构的独占锁。

  • SrvOpen->FcbFcbState 成员设置为 FCB_STATE_BUFFERSTATE_CHANGING。

  • 修改 RxContext 参数指向的RX_CONTEXT结构中的以下成员:

    • pRelevantSrvOpen 设置为SRV_OPEN结构。
    • pFcb 设置为 FCB 结构。
    • pFobx 设置为 FOBX 结构。

如果启用了锁缓冲,MRxCompleteBufferingStateChangeRequest 将需要将字节范围锁刷新到服务器。 锁定区域列表将传递到 LowIoContext.ParamsFor.Locks.LockList RX_CONTEXT 结构成员中的网络微型重定向程序。

服务器消息块 (SMB) 重定向程序使用 MRxCompleteBufferingStateChangeRequest 发送 oplock 中断响应,或者在不再使用文件时关闭 oplock 中断的句柄。 需要刷新到服务器的字节范围锁将传递到 RX_CONTEXT 结构的 LowIoContext.ParamsFor.Locks.LockList 成员中的网络微型重定向器。 新的 oplock 级别在 MrxContext 参数中传递。

RDBSS 忽略 MRxCompleteBufferingStateChangeRequest中的返回值。

要求

要求 价值
目标平台 桌面
标头 mrx.h (包括 Mrx.h)

另请参阅

MRxComputeNewBufferingState

MRxGetConnectionId