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 |
---|---|
|
IPv4 (IP versão 4) |
|
IPv6 (IP versão 6) |
|
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:
- Para uma pesquisa assíncrona, defina o sinalizador da família de endereços antes de chamar o método IUPnPDeviceFinder::CreateAsyncFind .
- Para uma pesquisa síncrona, defina o sinalizador da família de endereços antes de chamar o método IUPnPDeviceFinder::FindByUDN ou IUPnPDeviceFinder::FindByType .
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 |