PMGM_CREATION_ALERT_CALLBACK callback function (mgm.h)

The PMGM_CREATION_ALERT_CALLBACK callback is a call into a routing protocol. This call determines the subset of interfaces owned by the routing protocol on which a multicast packet from a new source should be forwarded.

When a packet sent from a new source, or destined for a new group, arrives on an interface, the multicast group manager creates a new MFE. The multicast group manager then invokes this callback to those routing protocols that have outgoing interfaces in this new MFE. A routing protocol can choose to disable the forwarding of data from the source to the group on specific interfaces.

Syntax

PMGM_CREATION_ALERT_CALLBACK PmgmCreationAlertCallback;

DWORD PmgmCreationAlertCallback(
  [in]      DWORD dwSourceAddr,
  [in]      DWORD dwSourceMask,
  [in]      DWORD dwGroupAddr,
  [in]      DWORD dwGroupMask,
  [in]      DWORD dwInIfIndex,
  [in]      DWORD dwInIfNextHopAddr,
  [in]      DWORD dwIfCount,
  [in, out] PMGM_IF_ENTRY pmieOutIfList
)
{...}

Parameters

[in] dwSourceAddr

Specifies the source address from which the multicast data was received. Zero indicates that data is received from all sources (a wildcard receiver for a group); otherwise, the value of dwSourceAddr is the IP address of the source or source network.

To specify a range of source addresses, the multicast group manager specifies the source network using dwSourceAddr, and specifies a subnet mask using dwSourceMask.

[in] dwSourceMask

Specifies the subnet mask that corresponds to dwSourceAddr. The dwSourceAddr and dwSourceMask parameters are used together to define a range of sources from which to receive multicast data.

The multicast group manager specifies zero for this parameter if it also specified zero for dwSourceAddr (a wildcard receiver).

[in] dwGroupAddr

Specifies the multicast group for which the data is destined. Zero indicates that all groups are received (a wildcard receiver); otherwise, the value of dwGroupAddr is the IP address of the group.

To specify a range of group addresses, the multicast group manager specifies the group address using dwGroupAddr, and specifies a subnet mask using dwGroupMask.

[in] dwGroupMask

Specifies the subnet mask that corresponds to dwGroupAddr. The dwGroupAddr and dwGroupMask parameters are used together to define a range of multicast groups.

The multicast group manager specifies zero for this parameter if it also specified zero for dwGroupAddr (a wildcard receiver).

[in] dwInIfIndex

Specifies the interface on which the multicast data from the source should arrive.

[in] dwInIfNextHopAddr

Specifies the address of the next hop that corresponds to the index specified by dwIfIndex. The dwIfIndex and dwIfNextHopIPAddr parameters uniquely identify a next hop on point-to-multipoint interfaces. A point-to-multipoint interface is a connection where one interface connects to multiple networks. Examples of point-to-multipoint interfaces include non-broadcast multiple access (NBMA) interfaces and the internal interface on which all dial-up clients connect.

For broadcast interfaces (such as Ethernet interfaces) or point-to-point interfaces, which are identified by only the value of dwIfIndex, specify zero.

[in] dwIfCount

Specifies the number of interfaces in the buffer pointed to by pmieOutIfList.

[in, out] pmieOutIfList

On input, a pointer to a buffer that contains the set of interfaces owned by the protocol on which data will be forwarded.

On output, the client can set the bIsEnabled member of the corresponding MGM_IF_ENTRY structure to FALSE to prevent forwarding on any of its interfaces. A client may not be required to prevent forwarding; such a client would accept the default value of bIsEnabled.

Return value

RRAS does not expect the application to return any specific value; any value returned is ignored by RRAS.

Requirements

Requirement Value
Minimum supported client None supported
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header mgm.h

See also

MGM_IF_ENTRY