Função MgmAddGroupMembershipEntry (mgm.h)

A função MgmAddGroupMembershipEntry notifica o gerenciador de grupo multicast de que há novos receptores para os grupos especificados na interface especificada. Os receptores podem restringir o conjunto de fontes das quais devem receber dados multicast especificando um intervalo de origem.

Um protocolo de roteamento multicast chama essa função quando é notificado de que há receptores para um grupo multicast em uma interface. O protocolo deve chamar essa função para que os dados multicast possam ser encaminhados por meio de uma interface.

Sintaxe

DWORD MgmAddGroupMembershipEntry(
  [in] HANDLE hProtocol,
  [in] DWORD  dwSourceAddr,
  [in] DWORD  dwSourceMask,
  [in] DWORD  dwGroupAddr,
  [in] DWORD  dwGroupMask,
  [in] DWORD  dwIfIndex,
  [in] DWORD  dwIfNextHopIPAddr,
  [in] DWORD  dwFlags
);

Parâmetros

[in] hProtocol

Manipule para o protocolo obtido de uma chamada anterior para MgmRegisterMProtocol.

[in] dwSourceAddr

Especifica o endereço de origem do qual receber dados multicast. Especifique zero para receber dados de todas as fontes (um receptor curinga para um grupo); caso contrário, especifique o endereço IP da rede de origem ou de origem.

Para especificar um intervalo de endereços de origem, especifique a rede de origem usando dwSourceAddr e especifique uma máscara de sub-rede usando dwSourceMask.

[in] dwSourceMask

Especifica a máscara de sub-rede que corresponde a dwSourceAddr. Os parâmetros dwSourceAddr e dwSourceMask são usados juntos para definir um intervalo de fontes das quais receber dados multicast.

Especifique zero para esse parâmetro se zero tiver sido especificado para dwSourceAddr (um receptor curinga).

[in] dwGroupAddr

Especifica o grupo multicast para o qual receber dados. Especifique zero para receber todos os grupos (um receptor curinga); caso contrário, especifique o endereço IP do grupo.

Para especificar um intervalo de endereços de grupo, especifique o endereço do grupo usando dwGroupAddr e especifique uma máscara de sub-rede usando dwGroupMask.

[in] dwGroupMask

Especifica a máscara de sub-rede que corresponde a dwGroupAddr. Os parâmetros dwGroupAddr e dwGroupMask são usados juntos para definir um intervalo de grupos multicast.

Especifique zero para esse parâmetro se zero tiver sido especificado para dwGroupAddr (um receptor curinga).

[in] dwIfIndex

Especifica a interface na qual adicionar a associação de grupo. Os dados multicast para os grupos especificados serão encaminhados por essa interface.

[in] dwIfNextHopIPAddr

Especifica o endereço do próximo salto que corresponde ao índice especificado por dwIfIndex. Os parâmetros dwIfIndex e dwIfNextHopIPAddr identificam exclusivamente um próximo salto em interfaces ponto a ponto. Uma interface ponto a ponto é uma conexão em que uma interface se conecta a várias redes. Exemplos de interfaces ponto a multipoint incluem interfaces NBMA (acesso múltiplo não difundido) e a interface interna na qual todos os clientes discados se conectam.

Para interfaces de difusão (como interfaces Ethernet) ou interfaces ponto a ponto, que são identificadas apenas pelo valor de dwIfIndex, especifique zero.

[in] dwFlags

Especifica qualquer processamento adicional que deve ocorrer quando a associação ao grupo é adicionada. Os valores válidos são:

Valor Significado
MGM_JOIN_STATE_FLAG
Adicione a associação de grupo para a origem e o grupo especificados. Atualize todas as entradas de encaminhamento para o grupo de origem especificado para refletir essa alteração na associação ao grupo.
MGM_FORWARD_STATE
Adicione a interface especificada à lista de interfaces de saída para a entrada de encaminhamento que corresponde à origem e ao grupo especificados.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um dos seguintes códigos de erro.

Valor Significado
ERROR_CAN_NOT_COMPLETE
Não foi possível concluir a chamada para essa função.
ERROR_INVALID_PARAMETER
Identificador inválido para o protocolo.
ERROR_NOT_ENOUGH_MEMORY
Memória insuficiente para concluir esta operação.
 
 

Comentários

Esta versão da API MGM dá suporte apenas a fontes curinga ou fontes específicas, não a uma variedade de fontes. A mesma restrição se aplica a grupos, ou seja, nenhum intervalo de grupo é permitido.

Quando essa função é chamada, o gerenciador de grupo multicast pode invocar o retorno de chamada PMGM_JOIN_ALERT_CALLBACK para notificar outros protocolos de roteamento de que há novos receptores para o grupo especificado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum compatível
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mgm.h
Biblioteca Rtm.lib
DLL Rtm.dll

Confira também

MgmDeleteGroupMembershipEntry

PMGM_JOIN_ALERT_CALLBACK