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) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈