Compartilhar via


PMGM_JOIN_ALERT_CALLBACK função de retorno de chamada (mgm.h)

O retorno de chamada PMGM_JOIN_ALERT_CALLBACK é uma chamada para um protocolo de roteamento para notificar o protocolo de que novos receptores estão presentes para um ou mais grupos em interfaces pertencentes a outros protocolos de roteamento. Depois que um protocolo de roteamento receber esse retorno de chamada, ele deverá começar a encaminhar dados multicast para a origem e o grupo especificados.

Sintaxe

PMGM_JOIN_ALERT_CALLBACK PmgmJoinAlertCallback;

DWORD PmgmJoinAlertCallback(
  [in] DWORD dwSourceAddr,
  [in] DWORD dwSourceMask,
  [in] DWORD dwGroupAddr,
  [in] DWORD dwGroupMask,
  [in] BOOL bMemberUpdate
)
{...}

Parâmetros

[in] dwSourceAddr

Especifica o endereço de origem do qual os dados multicast foram recebidos. Zero indica que os dados são recebidos de todas as fontes (um receptor curinga para um grupo); caso contrário, o valor de dwSourceAddr é o endereço IP da rede de origem ou de origem.

Para especificar um intervalo de endereços de origem, o gerenciador de grupo multicast especifica a rede de origem usando dwSourceAddr e especifica 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.

O gerenciador de grupo multicast especifica zero para esse parâmetro se ele também especificou zero para dwSourceAddr (um receptor curinga).

[in] dwGroupAddr

Especifica o grupo multicast para o qual os dados estão destinados. Zero indica que todos os grupos são recebidos (um receptor curinga); caso contrário, o valor de dwGroupAddr é o endereço IP do grupo.

Para especificar um intervalo de endereços de grupo, o gerenciador de grupo multicast especifica o endereço do grupo usando dwGroupAddr e especifica 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.

O gerenciador de grupo multicast especifica zero para esse parâmetro se ele também especificou zero para dwGroupAddr (um receptor curinga).

[in] bMemberUpdate

Especifica se o retorno de chamada foi invocado porque MgmAddGroupMembershipEntry foi chamado por um cliente (o gerenciador de grupo multicast define esse parâmetro como TRUE) ou porque um MFE foi criado ou atualizado (o gerenciador de grupo multicast define esse parâmetro como FALSE).

Retornar valor

O RRAS não espera que o aplicativo retorne nenhum valor específico; qualquer valor retornado é ignorado pelo RRAS.

Comentários

O gerenciador de grupo multicast define o parâmetro bMemberUpdate como TRUE e invoca esse retorno de chamada se um cliente chama a função MgmAddGroupMembershipEntry para uma entrada (s, g), (, g) ou (, *) (ou seja, a associação de grupo foi alterada).

O gerenciador de grupo multicast define o parâmetro bMemberUpdate como FALSE se a lista de interfaces de saída de um MFE for alterada. Normalmente, essa alteração ocorre para uma alteração na associação para o grupo correspondente ao MFE.

Um protocolo de roteamento multicast pode usar o parâmetro bMemberUpdate para distinguir entre alterações na associação de grupo e alterações no MFE.

A ação executada pelo protocolo de roteamento quando esse retorno de chamada é recebido é específica do protocolo. O protocolo poderá ignorar o retorno de chamada se o parâmetro bMemberUpdate estiver definido como FALSE, se a especificação do protocolo indicar que esse é o comportamento correto.

Quando MgmAddGroupMembershipEntry é chamado, o gerenciador de grupo multicast usa esse retorno de chamada para notificar outros clientes do gerenciador de grupo multicast de que há receptores para a origem e o grupo especificados.

O gerenciador de grupo multicast usa as seguintes regras para determinar quando invocar esse retorno de chamada para junções curinga (*, g):

  • Se esse for o primeiro cliente a informar o gerenciador de grupo multicast de que há receptores em uma interface para um grupo, o gerenciador de grupo multicast invocará o PMGM_JOIN_ALERT_CALLBACK retorno de chamada para todos os outros clientes registrados.
  • Se esse for o segundo cliente a informar o gerenciador de grupo multicast de que há receptores em uma interface para um grupo, o gerenciador de grupo multicast invocará esse retorno de chamada para o primeiro cliente a ingressar no grupo.
O gerenciador de grupo multicast não invoca esse retorno de chamada para nenhuma junção subsequente ao grupo.

O gerenciador de grupo multicast usa a seguinte regra para determinar quando invocar esse retorno de chamada para junções específicas da origem (s, g):

  • Se esse for o primeiro cliente a informar o gerenciador de grupo multicast de que há receptores em uma interface para uma origem e um grupo, o gerenciador de grupo multicast invocará o retorno de chamada PMGM_JOIN_ALERT_CALLBACK somente para o cliente que possui a interface de entrada para o "s" de origem.
Esta versão da API do Gerenciador de Grupo multicast dá suporte apenas a fontes curinga (*, g) ou fontes específicas (s, g), não a um intervalo de fontes. A mesma restrição se aplica a grupos (ou seja, nenhum intervalo de grupo é permitido).

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