PMRX_SRVCALL_WINNER_NOTIFY callback function (mrx.h)

The MRxSrvCallWinnerNotify routine is called by RDBSS to notify a network mini-redirector that it was chosen when multiple redirectors could fulfill the request.

Syntax

PMRX_SRVCALL_WINNER_NOTIFY PmrxSrvcallWinnerNotify;

NTSTATUS PmrxSrvcallWinnerNotify(
  IN OUT PMRX_SRV_CALL SrvCall,
  IN BOOLEAN ThisMinirdrIsTheWinner,
  IN OUT PVOID RecommunicateContext
)
{...}

Parameters

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.

Return value

MRxSmbSrvCallWinnerNotify returns STATUS_SUCCESS on success.

Remarks

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.

Requirements

Requirement Value
Target Platform Desktop
Header mrx.h (include Mrx.h)

See also

MRxCreateSrvCall

MRxCreateVNetRoot

MRxExtractNetRootName

MRxFinalizeNetRoot

MRxFinalizeVNetRoot

MRxPreparseName

RxFinalizeSrvCall