RxCreateVNetRoot function (fcb.h)

RxCreateVNetRoot allocates and initializes a NET_ROOT structure and inserts the name into the net name table on the associated device object.

Syntax

PV_NET_ROOT RxCreateVNetRoot(
  [in] IN PRX_CONTEXT       RxContext,
  [in] IN PNET_ROOT         NetRoot,
  [in] IN PUNICODE_STRING   CanonicalName,
  [in] IN PUNICODE_STRING   LocalNetRootName,
  [in] IN PUNICODE_STRING   FilePath,
  [in] IN PRX_CONNECTION_ID RxConnectionId
);

Parameters

[in] RxContext

A pointer to the RDBSS RX_CONTEXT containing the IRP describing a create operation.

[in] NetRoot

A pointer to the associated NET_ROOT structure.

[in] CanonicalName

A pointer to the canonical name to be inserted in the name table.

[in] LocalNetRootName

A pointer to the local NET_ROOT name without the prefix name.

[in] FilePath

A pointer to a file pathname. This parameter is not currently used and can be NULL.

[in] RxConnectionId

A pointer to the connection ID to be associated with the name to be inserted in the prefix name table. This parameter can be NULL in which case no connection ID will be associated with the name inserted in the name table.

Return value

RxCreateVNetRoot returns a pointer to a newly created V_NET_ROOT data structure on success or a NULL pointer on failure.

Remarks

The RxCreateVNetRoot routine is not normally called by network mini-redirector drivers directly. RDBSS calls this routine internally when an I/O request packet is received for IRP_MJ_CREATE and a V_NET_ROOT needs to be created. This IRP is normally received by RDBSS in response to a user-mode application requesting a file create operation on a network share. It is also possible for another kernel driver to issue such an IRP.

Before calling RxCreateVNetRoot, a lock on the name table associated with the device object member of the RxContext parameter must be acquired in exclusive mode.

RxCreateVNetRoot sets a variety of security context parameters on the V_NET_ROOT structure based on parameters from the RX_CONTEXT. These parameters include the following: LogonId, SessionId, pUserName, pUserDomainName, pPassword, and Flags.

Requirements

Requirement Value
Target Platform Desktop
Header fcb.h (include Rxcontx.h, Mrxfcb.h, Prefix.h, Struchdr.h, Fcb.h)
IRQL <= APC_LEVEL

See also

RX_CONTEXT

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxInferFileType

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

The NET_ROOT Structure

The V_NET_ROOT Structure