PMRX_CALLDOWN_CTX回调函数 (mrx.h)

RDBSS 调用 MRxStart 例程来启动网络微型重定向程序。

语法

PMRX_CALLDOWN_CTX PmrxCalldownCtx;

NTSTATUS PmrxCalldownCtx(
  [in, out] IN OUT PRX_CONTEXT RxContext,
  [in, out] IN OUT PRDBSS_DEVICE_OBJECT RxDeviceObject
)
{...}

参数

[in, out] RxContext

指向RX_CONTEXT结构的指针。 此参数包含请求网络微型重定向程序启动的 IRP。

[in, out] RxDeviceObject

指向此网络微型重定向器的RDBSS_DEVICE_OBJECT结构的指针。

返回值

MRxStart 返回成功或相应的 NTSTATUS 值STATUS_SUCCESS,例如以下值之一:

返回代码 描述
STATUS_REDIRECTOR_STARTED 网络微型重定向程序已启动。
STATUS_UNSUCCESSFUL 网络微型重定向程序无法成功启动。

言论

MRxStart 从 RDBSS 的角度完成网络微型重定向器的初始化。 请注意,这与在 DriverEntry 例程中执行的初始化不同。 任何依赖于 RDBSS 的初始化都应作为此例程的一部分完成,而独立于 RDBSS 的初始化应在 DriverEntry 例程中完成。

在调用 MRxStart 之前,RDBSS 修改 RxContext 参数指向的RX_CONTEXT结构中的以下成员:

MajorFunction 成员设置为 IRP 的主要函数。

LowIoContext.ParamsFor.FsCtl.FsControlCode 成员设置为 IRP 的 FSCTL 代码(如果这是用于启动网络微型重定向器的 FSTCL 请求)。

MRxStart 由 RDBSS 从 RxStartMinirdr 例程调用。 在调用 MRxStart 之前,RDBSS 会将网络微型重定向程序的 RxDeviceObject 注册为文件系统。 如果网络微型重定向程序指示对 UNC 名称的支持,RDBSS 还将网络微型重定向程序注册为 UNC 提供程序。

如果 MRxStart 返回STATUS_SUCCESS,则例程成功。 任何其他返回值都指示启动序列中发生了错误。

如果 MRxStart 返回STATUS_SUCCESS,则 RDBSS 会将 RDBSS 的状态设置为RDBSS_STARTED。 此状态存储在由 RxDeviceObject指向的RDBSS_DEVICE_OBJECT结构的 StartStopContext.State 成员中。

网络微型重定向程序通常会维护一个内部变量,指示是否启动网络微型重定向程序。 例如,网络微型重定向程序可能会跟踪它何时停止、启动以及启动作或停止作正在进行。

要求

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

另请参阅

MRxDevFcbXXXControlFile

MRxStop

RxStartMinirdr