The CO_MEDIA_PARAMETERS structure is typically used by a call manager to specify media parameters to an underlying connection-oriented miniport driver. The miniport driver either reserves resources for the VC or activates the VC with the specified media parameters.
typedef struct _CO_MEDIA_PARAMETERS{
ULONG Flags;
ULONG ReceivePriority;
ULONG ReceiveSizeHint;
CO_SPECIFIC_PARAMETERS MediaSpecific;
} CO_MEDIA_PARAMETERS, *PCO_MEDIA_PARAMETERS;
Declared in ndis.h. Include ndis.h.
The address of a buffered CO_MEDIA_PARAMETERS structure is a member of a CO_CALL_PARAMETERS structure. CO_MEDIA_PARAMETERS contains generic media parameters that are of interest to all connection-oriented miniport drivers. CO_MEDIA_PARAMETERS also specifies medium-specific parameters that apply to a specific network medium and possibly to a particular miniport driver that controls the medium.
The following describes the role of media parameters in connection-oriented NDIS operations:
Making an Outgoing Call
Usually a call manager derives the media parameters for an outgoing call from generic call manager parameters provided by a client's call to NdisClMakeCall and passed to the call manager's ProtocolCmMakeCall function. The call manager fills in CO_MEDIA_PARAMETERS and calls NdisCmActivateVc or NdisMCmActivateVc. The miniport driver receives the CO_MEDIA_PARAMETERS structure in its MiniportCoActivateVC function and uses the media parameters to reserve resources for a VC or to activate a VC.
A client that is aware of the underlying medium can itself fill in CO_MEDIA_PARAMETERS before calling NdisClMakeCall. If the client also sets the PERMANENT_VC bit in CO_CALL_PARAMETERS, the call manager can pass the call parameters uninterpreted to the miniport driver with Ndis(M)CmActivateVc.
Indicating an Incoming Call
When the call manager detects an incoming call on a SAP registered by a client, it maps parameters received in the signaling message to call manager parameters for the client and to media parameters for the miniport driver. The call manager calls Ndis(M)CmActivateVc to pass the media specific parameters to the miniport. The call manager does this before notifying the client of the incoming call with NdisCmDispatchIncomingCall or NdisMCmDispatchIncomingCall.
Request to Change Call Parameters for a VC
When a request to change call parameters for a VC is successfully negotiated between the client and a remote entity on the network, the call manager must reactivate the VC for the call. The call manager sends the miniport driver a revised set of media parameters with Ndis(M)CmActivateVc.
Adding a Party to a Call
If the underlying network medium (for example, ATM) does not support per-party traffic parameters on multipoint VCs, the call manager will fail a client's request to change the call parameters for a VC when a adding a party to the call. In this case, adding a party does not involve the media parameters.
If the underlying network medium does support per-party traffic parameters on multipoint VCs, a client can specify new call parameters for any new party it adds. In its call to NdisClAddParty, the client can include generic call manager parameters that the call manager translates to media parameters for the new party, and/or the client can include media parameters for the new party that the call manager passes uninterpreted to the miniport driver.
CO_CALL_MANAGER_PARAMETERS, CO_CALL_PARAMETERS, CO_SPECIFIC_PARAMETERS,NdisClAddParty, NdisCmActivateVc, NdisCoRequest, NdisMCmActivateVc, NdisMCoSendComplete, NDIS_PACKET_OOB_DATA, NDIS_SET_PACKET_TIME_RECEIVED, NDIS_SET_PACKET_TIME_SENT