MRxLowIOSubmit[LOWIO_OP_FSCTL] 例程
RDBSS 调用 MRxLowIOSubmit[LOWIO_OP_FSCTL] 例程,以请求网络微型重定向程序对远程文件发出文件系统控制请求。
语法
PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_FSCTL];
NTSTATUS MRxLowIOSubmit[LOWIO_OP_FSCTL](
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
参数
RxContext [in, out]
指向RX_CONTEXT 结构的指针。 此参数包含请求操作的 IRP。
返回值
MRxLowIOSubmit[LOWIO_OP_FSCTL] 在成功时返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:
返回代码 | 说明 |
---|---|
STATUS_CONNECTION_DISCONNECTED | 连接已断开连接。 |
STATUS_INSUFFICIENT_RESOURCES | 资源不足,无法完成请求。 |
STATUS_INVALID_DEVICE_REQUEST | 指定的设备请求无效。 |
STATUS_INVALID_NETWORK_RESPONSE | 从远程服务器收到无效响应。 |
STATUS_INVALID_PARAMETER | 在 RxContext 中指定了无效的参数。 |
STATUS_LINK_FAILED | 尝试重新连接到远程服务器以完成请求失败。 |
STATUS_NOT_IMPLEMENTED | 此例程未实现。 |
STATUS_NOT_SUPPORTED | 网络微型重定向程序不支持指定的 FSCTL。 |
STATUS_UNSUCCESSFUL | 调用失败。 |
注解
RDBSS 调用 MRxLowIOSubmit[LOWIO_OP_FSCTL] 以响应接收 IRP_MJ_FILE_SYSTEM_CONTROL 请求。
在调用 MRxLowIOSubmit[LOWIO_OP_FSCTL]之前,RDBSS 修改 RxContext 参数指向的 RX_CONTEXT 结构中的以下成员:
LowIoContext.Operation 成员设置为 LOWIO_OP_FSCTL。
LowIoContext.ResourceThreadId 成员设置为在 RDBSS 中启动操作的进程线程。
LowIoContext.ParamsFor.FsCtl.FsControlCode 成员设置为 FSCTL 主控制代码。
LowIoContext.ParamsFor.FsCtl.MinorFunction 成员设置为 FSCTL 次要控制代码。
LowIoContext.ParamsFor.FsCtl.pInputBuffer 成员设置为输入缓冲区。
LowIoContext.ParamsFor.FsCtl.InputBufferLength 成员设置为输入缓冲区长度。
LowIoContext.ParamsFor.FsCtl.pOutputBuffer 成员设置为输出缓冲区。
LowIoContext.ParamsFor.FsCtl.OutputBufferLength 成员设置为输出缓冲区长度。
(FSCTL) 由网络微型重定向程序处理的请求的文件系统控制代码可分为以下几个类别之一:
RDBSS 和网络微型重定向程序实现和使用 FSCL
仅由网络微型重定向程序实现和使用的 FSCL
网络微型重定向程序永远看不到的 FSCL。 这些 FSCL 仅用于调试辅助。
在处理 MRxLowIOSubmit[LOWIO_OP_FSCTL] 例程时,RX_CONTEXT 的 LowIoContext.ResourceThreadId 成员保证指示在 RDBSS 中启动操作的进程线程。 RX_CONTEXT 的 LowIoContext.ResourceThreadId 成员可用于代表另一个线程释放输入资源。 异步例程完成后,可以释放从初始线程获取的输入资源。
要求
目标平台 |
桌面 |
标头 |
Mrx.h (包括 Mrx.h) |
另请参阅
MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]
MRxLowIOSubmit[LOWIO_OP_IOCTL]
MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]
MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]
MRxLowIOSubmit[LOWIO_OP_UNLOCK]