Método IUPnPAddressFamilyControl::SetAddressFamily (upnp.h)
El método SetAddressFamily establece la marca de familia de direcciones del objeto Device Finder, que usa esta marca para filtrar los dispositivos encontrados.
La aplicación establece la marca de familia de direcciones antes de iniciar una búsqueda. La aplicación solo se notificará sobre los dispositivos que tienen direcciones IP que son de la familia de direcciones especificada.
Sintaxis
HRESULT SetAddressFamily(
[in] LONG dwFlags
);
Parámetros
[in] dwFlags
Entero (valor de 4 bytes) que especifica la familia de direcciones que va a usar el objeto Device Finder para filtrar los dispositivos encontrados.
Los valores siguientes son válidos.
Value | Significado |
---|---|
|
IPv4 (ip versión 4) |
|
IPv6 (ip versión 6) |
|
IPv4 e IPv6. |
Valor devuelto
Si el método se realiza correctamente, el valor devuelto se S_OK. De lo contrario, el método devuelve uno de los códigos de error COM definidos en WinError.h.
Comentarios
Establecimiento de la marca
La marca de familia de direcciones debe establecerse en el momento adecuado para afectar a la búsqueda:
- Para una búsqueda asincrónica, establezca la marca de familia de direcciones antes de llamar al método IUPnPDeviceFinder::CreateAsyncFind .
- Para una búsqueda sincrónica, establezca la marca de familia de direcciones antes de llamar al método IUPnPDeviceFinder::FindByUDN o IUPnPDeviceFinder::FindByType .
Filtrado de los dispositivos encontrados
Escenario 1: una aplicación de punto de control establece la marca de familia de direcciones en UPNP_ADDRESSFAMILY_IPV4 y, a continuación, inicia una búsqueda:
- Si device Finder detecta un dispositivo que tiene una dirección IPv6, Device Finder no notificará a la aplicación del dispositivo. Si el mismo dispositivo adquiere más adelante una dirección IPv4, Device Finder notificará a la aplicación del dispositivo y proporcionará la dirección IPv4.
- Si device Finder detecta un dispositivo que tiene una dirección IPv4, Device Finder notificará a la aplicación del dispositivo y proporcionará la dirección IPv4. Si el mismo dispositivo adquiere más adelante una dirección IPv6, Device Finder no notificará a la aplicación de la dirección adicional del dispositivo.
- Si Device Finder detecta un dispositivo que tiene direcciones IPv4 e IPv6, notificará a la aplicación del dispositivo, pero solo proporcionará la dirección IPv4.
- Si un dispositivo conocido por la aplicación anuncia un cambio de dirección, Device Finder notificará a la aplicación el cambio solo cuando la nueva dirección sea una dirección IPv4.
- Si un dispositivo que se conoce para la aplicación tiene direcciones IPv4 e IPv6 y Device Finder recibe un mensaje bye bye de la dirección IPv6 del dispositivo, Device Finder notificará a la aplicación aunque la aplicación solo sea consciente de la dirección IPv4. En otras palabras, si un dispositivo que se conoce para la aplicación sale de la red, Device Finder notificará a la aplicación independientemente de la dirección del dispositivo.
Escenario 2: una aplicación establece la marca de familia de direcciones en UPNP_ADDRESSFAMILY_IPV6 y, a continuación, inicia una búsqueda:
- Se aplica un conjunto similar de reglas como se describe en escenario 1, pero para la familia de direcciones opuestas.
Escenario 3: una aplicación establece la marca de familia de direcciones en UPNP_ADDRESSFAMILY_BOTH y, a continuación, inicia una búsqueda:
- Si device Finder detecta un dispositivo que tiene una dirección IPv4 o una dirección IPv6, Device Finder notificará a la aplicación del dispositivo y proporcionará la dirección. Si el mismo dispositivo adquiere más adelante una dirección que es de una familia de direcciones diferente, Device Finder no notificará a la aplicación de la dirección adicional del dispositivo.
- Si Device Finder detecta un dispositivo que tiene direcciones IPv4 e IPv6, notificará a la aplicación del dispositivo, pero solo proporcionará una de las direcciones elegidas aleatoriamente.
- Si un dispositivo conocido por la aplicación anuncia un cambio de dirección, Device Finder notificará a la aplicación el cambio.
- Si un dispositivo conocido para la aplicación sale de la red, Device Finder notificará a la aplicación.
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | No se admite ninguno |
Plataforma de destino | Windows |
Encabezado | upnp.h |
Archivo DLL | Upnp.dll |