RxCreateSrvOpen function (fcb.h)

RxCreateSrvOpen allocates, initializes, and inserts a new SRV_OPEN structure into the in-memory data structures used by RDBSS. If a new structure has to be allocated, it has space for an FOBX structure.

Syntax

PSRV_OPEN RxCreateSrvOpen(
  [in]      IN PV_NET_ROOT VNetRoot,
  [in, out] IN OUT PFCB    Fcb
);

Parameters

[in] VNetRoot

A pointer to the V_NET_ROOT structure.

[in, out] Fcb

A pointer to the associated FCB structure.

Return value

RxCreateSrvOpen returns a pointer to a newly created SRV_OPEN data structure on success or a NULL pointer on failure.

Remarks

The RxCreateSrvOpen 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 SRV_OPEN 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 RxCreateSrvOpen, a lock on the associated FCB structure must be acquired in exclusive mode.

RxCreateSrvOpen will try and use the SRV_CALL allocated as part of the associated FCB structure if it is available. If the SRV_CALL allocated with the FCB is not available, then RxCreateSrvOpen will allocate a new SRV_CALL structure.

If the associated FCB is a paging file, RxCreateSrvOpen allocates non-paged pool memory when creating the new SRV_OPEN data structure. If the associated FCB is a not a paging file, RxCreateSrvOpen allocates paged pool memory when creating the new SRV_OPEN data structure.

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

Requirements

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

See also

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

The FCB Structure

The SRV_OPEN Structure

The V_NET_ROOT Structure