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) |