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->Fcb 的 FcbState 成员设置为 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) |