RxCreateNetFCB function

RxCreateNetFCB allocates, initializes, and inserts a new FCB structure into the in-memory data structures for a V_NET_ROOT that this FCB is being opened on. The structure allocated has space for a SRV_OPEN and an FOBX structure.

Syntax


PFCB RxCreateNetFcb(
  _In_ PRX_CONTEXT     RxContext,
  _In_ PIRP            Irp,
  _In_ PV_NET_ROOT     VNetRoot,
  _In_ PUNICODE_STRING Name
);

Parameters

RxContext [in]

A pointer to the RX_CONTEXT structure describing a create operation.

Irp [in]

A pointer to the IRP encapsulated by this RX_CONTEXT structure.

VNetRoot [in]

A pointer to the V_NET_ROOT structure that this FCB is being opened on.

Name [in]

The name of the FCB. The V_NET_ROOT may contain a name prefix that is to be prepended here.

Return value

RxCreateNetFCB returns a pointer to a newly allocated FCB data structure on success or a NULL pointer on failure.

Remarks

The RxCreateNetFCB 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 an FCB structure 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.

If the FCB to be created is a paging file, RxCreateNetFCB allocates non-paged pool memory when creating the new FCB data structure and sets the following flag on in the FcbState member of the FCB:

FCB_STATE_PAGING_FILE

When this value is set, the FCB structure was created for a paging file and the FCB structure was allocated from non-paged pool memory.

If the FCB to be created is a not a paging file, RxCreateNetFCB allocates paged pool memory when creating the new FCB data structure.

Windows does not currently allow having a paging file on a remote machine.

If the Create.Flags member in the RX_CONTEXT has the RX_CONTEXT_CREATE_FLAG_ADDEDBACKSLASH flag on, the FcbState member of the FCB has the FCB_STATE_ADDEDBACKSLASH flag set on.

Requirements

Target platform

Desktop

Header

Fcb.h (include Rxcontx.h, Mrxfcb.h, or Fcb.h)

IRQL

<= APC_LEVEL

See also

The FCB Structure
RxCreateNetFobx
RxCreateNetRoot
RxCreateSrvCall
RxCreateSrvOpen
RxCreateVNetRoot
RxDereference
RxFinalizeConnection
RxFinalizeNetFcb
RxFinalizeNetFobx
RxFinalizeNetRoot
RxFinalizeSrvCall
RxFinalizeSrvOpen
RxFinalizeVNetRoot
RxFinishFcbInitialization
RxForceFinalizeAllVNetRoots
RxReference
RxSetSrvCallDomainName
RxpDereferenceNetFcb
RxpReferenceNetFcb
RX_CONTEXT
The V_NET_ROOT Structure

 

 

Send comments about this topic to Microsoft

Show: