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 在成功时返回STATUS_SUCCESS或适当的 NTSTATUS 值,例如以下值之一:

返回代码 说明
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