RxCreateSrvCall builds a SRV_CALL structure and inserts the name into the net name table maintained by RDBSS.
PSRV_CALL RxCreateSrvCall( _In_ PRX_CONTEXT RxContext, _In_ PUNICODE_STRING Name, _In_opt_ PUNICODE_STRING InnerNamePrefix, _In_ PRX_CONNECTION_ID RxConnectionId );
A pointer to the RX_CONTEXT structure containing the IRP describing a create operation.
A pointer to the name to be inserted in the name table.
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 prefix name table.
RxCreateSrvCall returns a pointer to a newly created SRV_CALL data structure on success or a NULL pointer on failure.
The RxCreateSrvCall 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_CALL 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 RxCreateSrvCall, a lock on the name table associated with the device object member of the RxContext parameter must be acquired in exclusive mode.
RxCreateSrvCall initializes the server call parameters passed in through extended attributes as part of the associated RX_CONTEXT structure. Currently this includes initializing the pPrincipalName member of the SRV_CALL which is passed in by the DFS driver.
|Header||fcb.h (include Rxcontx.h, Mrxfcb.h, Prefix.h, Fcb.h)|