// mrx.h
PMRX_SRVCALL_WINNER_NOTIFY PmrxSrvcallWinnerNotify;
NTSTATUS PmrxSrvcallWinnerNotify(
IN OUT PMRX_SRV_CALL SrvCall,
IN BOOLEAN ThisMinirdrIsTheWinner,
IN OUT PVOID RecommunicateContext
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
The MRxSrvCallWinnerNotify routine is called by RDBSS to notify a network mini-redirector that it was chosen when multiple redirectors could fulfill the request.
SrvCall[in, out] A pointer to an SRV_CALL structure that is created by the network mini-redirector.
ThisMinirdrIsTheWinner[in] A Boolean value that indicates that this network mini-redirector was chosen.
RecommunicateContext[in/out] Pointer to the network mini-redirector-provided value in PMRX_CREATE_SRVCALL.
MRxSmbSrvCallWinnerNotify returns STATUS_SUCCESS on success.
MRxSrvCallWinnerNotify was originally designed to be called by RDBSS to notify a network mini-redirector that it was chosen when multiple redirectors could fulfill the request. The chosen network mini-redirector is expected to create the SRV_CALL structure and establish a connection with the server.
The network mini-redirector should complete the context for the SRV_CALL structure. If the network mini-redirector supports case-insensitive names for NET_ROOT structures and for filenames, then the SRV_CALL Flags member should set the bits for SRVCALL_FLAG_CASE_INSENSITIVE_NETROOTS and SRVCALL_FLAG_CASE_INSENSITIVE_FILENAMES.
Under the current implementation of RDBSS, each network mini-redirector has its own copy of RDBSS, so there are no competing network redirectors at the RDBSS layer. All network mini-redirectors will receive a call to MRxSrvCallWinnerNotify with the ThisMinirdrIsTheWinner parameter set to TRUE after receiving a call to MRxCreateSrvCall to create the SRV_CALL structure.
When multiple redirectors are installed for handling the same UNC namespace, the redirector to service a request is chosen by multiple UNC provider (MUP) based on the order of redirectors specified in the registry.