CO_MEDIA_PARAMETERS structure

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 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.

Syntax

typedef struct _CO_MEDIA_PARAMETERS {
  ULONG                                    Flags;
  ULONG                                    ReceivePriority;
  ULONG                                    ReceiveSizeHint;
  CO_SPECIFIC_PARAMETERS POINTER_ALIGNMENT MediaSpecific;
} CO_MEDIA_PARAMETERS, *PCO_MEDIA_PARAMETERS;

Members

  • Flags
    The flags can be one or more (ORed) of the following:

    • RECEIVE_TIME_INDICATION
      When set, the miniport driver should use the NDIS_SET_PACKET_TIME_RECEIVED macro to fill in the TimeReceived member in the out-of-band data block for each received packet.

    • USE_TIME_STAMPS
      When set, the miniport driver should use the NDIS_SET_PACKET_TIME_SENT macro to fill in the TimeSent member in the out-of-band data block for each transmitted packet. If the medium does not support time stamps, the miniport driver should ignore this flag.

    • TRANSMIT_VC
      When set, indicates that the VC activated by the miniport driver will be used for transmitting data.

    • RECEIVE_VC
      When set, indicates that the VC activated by the miniport driver will be used for receiving data.

    • INDICATE_ERRED_PACKETS
      When set, the miniport driver should indicate receive packets that contain errors (such as checksum errors) to the client. Otherwise, the miniport driver should discard such packets without notifying the client.

    • INDICATE_END_OF_TX
      When set, the miniport driver should call NdisMCoSendComplete for a packet only after transmission of the packet is finished. Otherwise, the miniport driver can call NdisMCoSendComplete sooner; for example, after transferring the protocol-supplied data into the NIC buffer(s).

    • RESERVE_RESOURCES_VC
      When set, the call manager is requesting that the miniport driver reserve all resources (such as buffers) needed for the VC. The miniport driver should not activate the VC until its MiniportCoActivateVC function is called with this flag cleared.

    • ROUND_DOWN_FLOW
      When set, the miniport driver should round down the value of each media-specific flow parameter (such as bandwidth) to the nearest supported value if the exact value specified cannot be supported. In its call to NdisMCoActivateVcComplete, the miniport driver should return (in the buffer at MediaSpecific parameters) the actual value used for each rounded value.

    • ROUND_UP_FLOW
      When set, the miniport driver should round up the value of each media-specific flow parameter (such as bandwidth) to the nearest supported value if the exact value specified cannot be supported. In its call to NdisMCoActivateVcComplete, the miniport driver should return (in the buffer at MediaSpecific parameters) the actual value used for each rounded value.

  • ReceivePriority

    • This is currently reserved.
  • ReceiveSizeHint
    Specifies the size in bytes of incoming packets. This member is commonly set to the maximum SDU size.

  • MediaSpecific
    Pointer to a buffered CO_SPECIFIC_PARAMETERS structure that contains information specific to the particular medium being used.

Remarks

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 NdisMCmActivateVc.

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 NdisMCmActivateVc 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 NdisMCmActivateVc.

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.

Requirements

Header

Ndis.h (include Ndis.h)

See also

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

 

 

Send comments about this topic to Microsoft