RxCreateNetRoot 函数 (fcb.h)

RxCreateNetRoot 分配并初始化NET_ROOT结构,并将名称插入关联设备对象的 net name 表中。

语法

PNET_ROOT RxCreateNetRoot(
  [in]           IN PSRV_CALL         SrvCall,
  [in]           IN PUNICODE_STRING   Name,
  [in]           IN ULONG             NetRootFlags,
  [in, optional] IN PRX_CONNECTION_ID RxConnectionId
);

参数

[in] SrvCall

指向关联的SRV_CALL结构的指针。

[in] Name

指向要插入到名称表中的名称的指针。

[in] NetRootFlags

用于设置NET_ROOT的 Flags 成员的值,该值用于表示NET_ROOT结构的状态。

[in, optional] RxConnectionId

指向要与要插入到前缀名称表中的名称关联的连接 ID 的指针。 此参数可以为 NULL ,在这种情况下,不会将任何连接 ID 与前缀名称表中插入的名称相关联。

返回值

RxCreateNetRoot 在成功时返回指向新创建的NET_ROOT数据结构的指针,或者在失败时返回 NULL 指针。

注解

网络微型重定向程序驱动程序通常不会直接调用 RxCreateNetRoot 例程。 当收到用于IRP_MJ_CREATE的 I/O 请求数据包并且需要创建NET_ROOT时,RDBSS 会在内部调用此例程。 此 IRP 通常由 RDBSS 接收,以响应请求对网络共享执行文件创建操作的用户模式应用程序。 另一个内核驱动程序也可以发出这样的 IRP。

在调用 RxCreateNetRoot 之前,必须在独占模式下获取与 SrvCall 参数的设备对象成员关联的名称表上的锁。

NET_ROOT标志分为两组:对网络微型重定向程序可见和对网络微型重定向程序不可见的组。 可见是NET_ROOT 的 Flags 成员的较低 16 位。 此例程不会检查或测试正在设置哪些标志。

成功后,SRV_CALL结构的引用计数会递增。

要求

要求
目标平台 桌面
标头 fcb.h (包括 Rxcontx.h、Mrxfcb.h、Prefix.h、Struchdr.h、Fcb.h)
IRQL <= APC_LEVEL

另请参阅

RxCreateNetFcb

RxCreateNetFobx

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

NET_ROOT结构

SRV_CALL结构