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 |