Compartilhar via


Método IUPnPAddressFamilyControl::SetAddressFamily (upnp.h)

O método SetAddressFamily define o sinalizador da família de endereços do objeto Device Finder, que usa esse sinalizador para filtrar os dispositivos encontrados.

O aplicativo define o sinalizador da família de endereços antes de iniciar uma pesquisa. O aplicativo será notificado apenas sobre dispositivos que têm endereços IP que são da família de endereços especificada.

Sintaxe

HRESULT SetAddressFamily(
  [in] LONG dwFlags
);

Parâmetros

[in] dwFlags

Inteiro (valor de 4 bytes) que especifica a família de endereços a ser usada pelo objeto Device Finder para filtrar os dispositivos encontrados.

Os valores a seguir são válidos.

Valor Significado
UPNP_ADDRESSFAMILY_IPv4
IPv4 (IP versão 4)
UPNP_ADDRESSFAMILY_IPv6
IPv6 (IP versão 6)
UPNP_ADDRESSFAMILY_BOTH
IPv4 e IPv6

Valor retornado

Se o método for bem-sucedido, o valor retornado será S_OK. Caso contrário, o método retornará um dos códigos de erro COM definidos em WinError.h.

Comentários

Definindo o sinalizador

O sinalizador da família de endereços deve ser definido no momento apropriado para afetar a pesquisa:

Filtrando os dispositivos encontrados

Cenário 1: um aplicativo de ponto de controle define o sinalizador da família de endereços como UPNP_ADDRESSFAMILY_IPV4 e inicia uma pesquisa:

  • Se o Localizador de Dispositivo descobrir um dispositivo que tenha um endereço IPv6, o Localizador de Dispositivos não notificará o aplicativo do dispositivo. Se o mesmo dispositivo adquirir posteriormente um endereço IPv4, o Localizador de Dispositivo notificará o aplicativo do dispositivo e fornecerá o endereço IPv4.
  • Se o Localizador de Dispositivo descobrir um dispositivo que tenha um endereço IPv4, o Localizador de Dispositivo notificará o aplicativo do dispositivo e fornecerá o endereço IPv4. Se o mesmo dispositivo adquirir posteriormente um endereço IPv6, o Localizador de Dispositivos não notificará o aplicativo do endereço adicional do dispositivo.
  • Se o Localizador de Dispositivo descobrir um dispositivo que tenha endereços IPv4 e IPv6, ele notificará o aplicativo do dispositivo, mas fornecerá apenas o endereço IPv4.
  • Se um dispositivo conhecido pelo aplicativo anunciar uma alteração de endereço, o Localizador de Dispositivo notificará o aplicativo da alteração somente quando o novo endereço for um endereço IPv4.
  • Se um dispositivo conhecido pelo aplicativo tiver endereços IPv4 e IPv6 e o Localizador de Dispositivo receber uma mensagem de bye-bye do endereço IPv6 do dispositivo, o Localizador de Dispositivo notificará o aplicativo mesmo que o aplicativo esteja ciente apenas do endereço IPv4. Em outras palavras, se um dispositivo conhecido pelo aplicativo sair da rede, o Localizador de Dispositivo notificará o aplicativo independentemente do endereço do dispositivo.

Cenário 2: um aplicativo define o sinalizador da família de endereços como UPNP_ADDRESSFAMILY_IPV6 e inicia uma pesquisa:

  • Um conjunto semelhante de regras se aplica conforme descrito no Cenário 1, mas para a família de endereços oposta.

Cenário 3: um aplicativo define o sinalizador da família de endereços como UPNP_ADDRESSFAMILY_BOTH e inicia uma pesquisa:

  • Se o Localizador de Dispositivo descobrir um dispositivo que tenha um endereço IPv4 ou um endereço IPv6, o Localizador de Dispositivo notificará o aplicativo do dispositivo e fornecerá o endereço. Se o mesmo dispositivo adquirir posteriormente um endereço de uma família de endereços diferente, o Localizador de Dispositivos não notificará o aplicativo sobre o endereço adicional do dispositivo.
  • Se o Localizador de Dispositivos descobrir um dispositivo que tenha endereços IPv4 e IPv6, ele notificará o aplicativo do dispositivo, mas fornecerá apenas um dos endereços escolhidos aleatoriamente.
  • Se um dispositivo conhecido pelo aplicativo anunciar uma alteração de endereço, o Localizador de Dispositivo notificará o aplicativo sobre a alteração.
  • Se um dispositivo conhecido pelo aplicativo sair da rede, o Localizador de Dispositivo notificará o aplicativo.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Nenhum compatível
Plataforma de Destino Windows
Cabeçalho upnp.h
DLL Upnp.dll

Confira também

GetAddressFamily

IUPnPAddressFamilyControl