Metodo IUPnPAddressFamilyControl::SetAddressFamily (upnp.h)
Il metodo SetAddressFamily imposta il flag della famiglia di indirizzi dell'oggetto Device Finder, che usa questo flag per filtrare i dispositivi trovati.
L'applicazione imposta il flag della famiglia di indirizzi prima di avviare una ricerca. L'applicazione riceverà una notifica solo sui dispositivi con indirizzi IP della famiglia di indirizzi specificata.
Sintassi
HRESULT SetAddressFamily(
[in] LONG dwFlags
);
Parametri
[in] dwFlags
Intero (valore a 4 byte) che specifica la famiglia di indirizzi da utilizzare dall'oggetto Device Finder per filtrare i dispositivi trovati.
I valori seguenti sono validi.
valore | Significato |
---|---|
|
IPv4 (IP versione 4) |
|
IPv6 (IP versione 6) |
|
IPv4 e IPv6 |
Valore restituito
Se il metodo ha esito positivo, il valore restituito viene S_OK. In caso contrario, il metodo restituisce uno dei codici di errore COM definiti in WinError.h.
Commenti
Impostazione del flag
Il flag della famiglia di indirizzi deve essere impostato al momento appropriato per influire sulla ricerca:
- Per una ricerca asincrona, impostare il flag della famiglia di indirizzi prima di chiamare il metodo IUPnPDeviceFinder::CreateAsyncFind .
- Per una ricerca sincrona, impostare il flag della famiglia di indirizzi prima di chiamare il metodo IUPnPDeviceFinder::FindByUDN o IUPnPDeviceFinder::FindByType .
Filtro dei dispositivi trovati
Scenario 1: un'applicazione del punto di controllo imposta il flag della famiglia di indirizzi su UPNP_ADDRESSFAMILY_IPV4 e quindi avvia una ricerca:
- Se il Ricerca dispositivi individua un dispositivo con un indirizzo IPv6, Device Finder non notifica l'applicazione del dispositivo. Se lo stesso dispositivo acquisisce in un secondo momento un indirizzo IPv4, Device Finder notifica all'applicazione del dispositivo e fornisce l'indirizzo IPv4.
- Se il Ricerca dispositivi individua un dispositivo con un indirizzo IPv4, Device Finder invia una notifica all'applicazione del dispositivo e fornisce l'indirizzo IPv4. Se lo stesso dispositivo acquisisce in un secondo momento un indirizzo IPv6, Device Finder non notifica all'applicazione dell'indirizzo aggiuntivo del dispositivo.
- Se Device Finder individua un dispositivo con indirizzi IPv4 e IPv6, invia una notifica all'applicazione del dispositivo, ma fornirà solo l'indirizzo IPv4.
- Se un dispositivo noto all'applicazione annuncia una modifica dell'indirizzo, Device Finder informerà l'applicazione della modifica solo quando il nuovo indirizzo è un indirizzo IPv4.
- Se un dispositivo noto all'applicazione ha indirizzi IPv4 e IPv6 e Device Finder riceve un messaggio bye bye dall'indirizzo IPv6 del dispositivo, Device Finder invia una notifica all'applicazione anche se l'applicazione è a conoscenza solo dell'indirizzo IPv4. In altre parole, se un dispositivo noto all'applicazione lascia la rete, Device Finder informerà l'applicazione indipendentemente dall'indirizzo del dispositivo.
Scenario 2: un'applicazione imposta il flag della famiglia di indirizzi su UPNP_ADDRESSFAMILY_IPV6 e quindi avvia una ricerca:
- Un set di regole simile si applica come descritto nello scenario 1, ma per la famiglia di indirizzi opposta.
Scenario 3: un'applicazione imposta il flag della famiglia di indirizzi su UPNP_ADDRESSFAMILY_BOTH e quindi avvia una ricerca:
- Se Il Ricerca dispositivi individua un dispositivo con un indirizzo IPv4 o un indirizzo IPv6, Device Finder insecherà all'applicazione il dispositivo e fornirà l'indirizzo. Se lo stesso dispositivo acquisisce in un secondo momento un indirizzo di una famiglia di indirizzi diversa, Device Finder non notifica all'applicazione l'indirizzo aggiuntivo del dispositivo.
- Se Device Finder individua un dispositivo con indirizzi IPv4 e IPv6, notifica all'applicazione del dispositivo, ma fornisce solo uno degli indirizzi scelti in modo casuale.
- Se un dispositivo noto all'applicazione annuncia una modifica dell'indirizzo, Device Finder informerà l'applicazione della modifica.
- Se un dispositivo noto all'applicazione lascia la rete, Device Finder invia una notifica all'applicazione.
Requisiti
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Nessuno supportato |
Piattaforma di destinazione | Windows |
Intestazione | upnp.h |
DLL | Upnp.dll |