ProtocolClAddPartyComplete (NDIS 5.1) function

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

The ProtocolClAddPartyComplete function is required for connection-oriented NDIS clients that set up multipoint connections. Such clients must have ProtocolClAddPartyComplete functions to complete the asynchronous operations that they initiate with NdisClAddParty. Otherwise, such a protocol driver's registered ProtocolClAddPartyComplete function can simply return control.

Syntax

VOID ProtocolClAddPartyComplete(
  _In_ NDIS_STATUS         Status,
  _In_ NDIS_HANDLE         ProtocolPartyContext,
  _In_ NDIS_HANDLE         NdisPartyHandle,
  _In_ PCO_CALL_PARAMETERS CallParameters
);

Parameters

  • Status [in]
    Specifies final status of the client-initiated add-party operation, which can be one of the following:

    • NDIS_STATUS_SUCCESS
      The given party was added on the client's active multipoint VC.

    • NDIS_STATUS_RESOURCES
      NDIS could not allocate sufficient resources to track the new party.

    • NDIS_STATUS_FAILURE
      The client passed an invalid NdisVcHandle to NdisClAddParty.

    • NDIS_STATUS_ XXX
      The call manager's ProtocolCmAddParty function returned a CM-determined value to indicate why it could not add the party to the VC.

  • ProtocolPartyContext [in]
    Specifies the client-supplied handle originally passed to NdisClAddParty.

  • NdisPartyHandle [in]
    If Status is NDIS_STATUS_SUCCESS, this NDIS-supplied handle represents the association between the call manager and client regarding this party. Otherwise, the attempt to add a party failed and the client should consider this parameter an invalid handle.

  • CallParameters [in]
    Pointer to a structure of type CO_CALL_PARAMETERS, originally set up by the client for its call to NdisClAddParty but possibly modified subsequently by the call manager.

Return value

None

Remarks

A call to ProtocolClAddPartyComplete indicates completion of the asynchronous operation initiated when the client called NdisClAddParty. If the input Status is set to anything other than NDIS_STATUS_SUCCESS, ProtocolClAddPartyComplete can release or reuse the client-allocated buffers at ProtocolPartyContext and at CallParameters.

If the attempt to add a party succeeded, ProtocolClAddPartyComplete should save the input NdisPartyHandle for subsequent calls to NDIS library functions concerning this party in the client's ProtocolPartyContext area. For example, the client must pass this handle in a subsequent call to NdisClDropParty eventually unless the remote party that it represents closes its connection first.

The structure at CallParameters originally was allocated and initialized by the client, which passed this pointer to NdisClAddParty. However, the call manager might have modified the client-supplied values to reflect the results of the CM's negotiation with the network or with a signaling peer while processing the client's add-party request. To determine whether the call manager made any modifications, ProtocolClAddPartyComplete can check the Flags member of this structure for whether CALL_PARAMETERS_CHANGED is set. If so, ProtocolClAddPartyComplete must update the per-party state that the client maintains for this call at ProtocolPartyContext unless it finds the CM's modifications unacceptable. The particular signaling protocol determines what the client can do in this case. Usually, a client calls NdisClDropParty if it finds the CM-modified call parameters unacceptable.

Depending on the signaling protocol of the call manager, the traffic parameters at CallParameters can be identical for all parties on any particular multipoint connection. That is, as the client of such a call manager adds parties on a multipoint connection that the client originally set up with NdisClMakeCall, it can supply only the target address of each party and leave the traffic parameters as originally set up for the multipoint VC each time it calls NdisClAddParty.

Requirements

Target platform

Desktop

Version

See ProtocolClAddPartyComplete.

Header

Ndis.h (include Ndis.h)

IRQL

<= DISPATCH_LEVEL

See also

CO_CALL_PARAMETERS

NdisClAddParty

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisMCmAddPartyComplete

ProtocolClIncomingDropParty

ProtocolCmAddParty

 

 

Send comments about this topic to Microsoft