Compartilhar via


estrutura IP_MSFILTER (ws2ipdef.h)

A estrutura ip_msfilter fornece parâmetros de filtragem multicast para endereços IPv4.

Sintaxe

typedef struct ip_msfilter {
  IN_ADDR             imsf_multiaddr;
  IN_ADDR             imsf_interface;
  MULTICAST_MODE_TYPE imsf_fmode;
  ULONG               imsf_numsrc;
  IN_ADDR             imsf_slist[1];
} IP_MSFILTER, *PIP_MSFILTER;

Membros

imsf_multiaddr

O endereço IPv4 do grupo multicast.

imsf_interface

O endereço IPv4 local da interface ou o índice de interface no qual o grupo multicast deve ser filtrado. Esse valor está na ordem de bytes de rede. Se esse membro especificar um endereço IPv4 de 0.0.0.0, a interface multicast IPv4 padrão será usada.

Usar um índice de interface de 1 seria o mesmo que um endereço IP de 0.0.0.1.

imsf_fmode

O modo de filtro multicast a ser usado. Esse parâmetro pode ser MCAST_INCLUDE (valor 0) para incluir fontes multicast específicas ou MCAST_EXCLUDE (valor 1) para excluir o tráfego de fontes especificadas.

No Windows Server 2003 e no Windows XP, esses valores são definidos no arquivo de cabeçalho Ws2tcpip.h .

No Windows Vista e posterior, esses valores são definidos como valores de enumeração na enumeração MULTICAST_MODE_TYPE definida no arquivo de cabeçalho Ws2ipdef.h .

imsf_numsrc

O número de fontes no membro imsf_slist .

imsf_slist[1]

Uma matriz de estruturas de in_addr que especificam os endereços de origem multicast IPv4 a serem incluídos ou excluídos.

Comentários

A estrutura ip_msfilter é usada com endereços IPv4. A estrutura de ip_msfilter é passada como um argumento para o SIO_GET_MULTICAST_FILTER e SIO_SET_MULTICAST_FILTER IOCTLs.

A estrutura ip_msfilter e as estruturas relacionadas usadas para programação multicast IPv4 são baseadas em recomendações de IETF nas seções 4 e 8.1 do RFC 3768. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc3678.txt.

No Windows Vista e posteriores, um conjunto de opções de soquete está disponível para programação multicast que dá suporte a endereços IPv6 e IPv4. Essas opções de soquete são independentes de IP e podem ser usadas no IPv6 e no IPv4. Essas opções independentes de IP usam as estruturas GROUP_REQ e GROUP_SOURCE_REQ e as IOCTLs SIOCSMSFILTER e SIOCGMSFILTER . Estas são as opções de soquete preferenciais e IOCTLs para programação multicast no Windows Vista e posterior.

O membro imsf_interface pode ser um índice de interface. Qualquer endereço IPv4 no bloco 0.x.x.x (primeiro octeto de 0), exceto pelo endereço IPv4 de 0.0.0.0, é tratado como um índice de interface. Um índice de interface é um número de 24 bits. O bloco de endereços IPv4 0.0.0.0/8 não é usado (esse intervalo é reservado). A função GetAdaptersAddresses pode ser usada para obter informações de índice de interface a serem usadas para o membro imsf_interface .

É recomendável que um endereço IPv4 local ou índice de interface sempre seja especificado no membro imsf_interface da estrutura ip_msfilter , em vez de usar a interface padrão. Isso é particularmente importante em computadores com vários adaptadores de rede e vários endereços IPv4 públicos.

A interface padrão usada para multicast IPv4 é determinada pela pilha de rede no Windows. Um aplicativo pode determinar a interface padrão usada para multicast IPv4 usando a função GetIpForwardTable para recuperar a tabela de roteamento IPv4. O adaptador de rede com o menor valor para a métrica de roteamento para um endereço IP de destino de 224.0.0.0 é a interface padrão para multicast IPv4. A tabela de roteamento também pode ser exibida no prompt de comando com o seguinte comando:

imprimir rota

A opção de soquete IP_MULTICAST_IF pode ser usada para definir a interface padrão para enviar pacotes multicast IPv4. Essa opção de soquete não altera a interface padrão usada para receber pacotes multicast IPv4.

Um aplicativo multicast IPv4 típico usaria a opção de soquete IP_ADD_MEMBERSHIP com a estrutura ip_mreq ou a opção de soquete IP_ADD_SOURCE_MEMBERSHIP com a estrutura ip_mreq_source para unir um grupo multicast e escutar pacotes multicast em uma interface específica. A opção IP_MULTICAST_IF soquete seria usada para definir a interface para enviar pacotes multicast IPv4 para o grupo multicast. O cenário mais comum seria um aplicativo multicast que escuta e envia na mesma interface para um grupo multicast. Vários soquetes podem ser usados por um aplicativo multicast com um soquete para escuta e um ou mais soquetes para envio.

No Microsoft Windows Software Development Kit (SDK) lançado para Windows Vista e posterior, a organização de arquivos de cabeçalho foi alterada e a estrutura de ip_msfilter é definida no arquivo de cabeçalho Ws2ipdef.h , que é incluído automaticamente no arquivo de cabeçalho Ws2tcpip.h . Os arquivos de cabeçalho Ws2ipdef.h nunca devem ser usados diretamente.

Nota As estruturas derivadas IP_MSFILTER e PIP_MSFILTER são definidas apenas no SDK do Windows lançado com o Windows Vista e posterior. A estrutura ip_msfilter deve ser usada em versões anteriores do SDK do Windows.
 

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho ws2ipdef.h (include Ws2tcpip.h)

Confira também

Programação multicast baseada em estado final

GROUP_FILTER

GROUP_REQ

GROUP_SOURCE_REQ

Getadaptersaddresses

GetIpForwardTable

Opções de soquete IPPROTO_IP

MULTICAST_MODE_TYPE

Programação multicast

Opções de soquete

ip_mreq

ip_mreq_source