Méthode IUPnPAddressFamilyControl::SetAddressFamily (upnp.h)
La méthode SetAddressFamily définit l’indicateur de famille d’adresses de l’objet Device Finder, qui utilise cet indicateur pour filtrer les appareils trouvés.
L’application définit l’indicateur de famille d’adresses avant de commencer une recherche. L’application est avertie uniquement des appareils qui ont des adresses IP de la famille d’adresses spécifiée.
Syntaxe
HRESULT SetAddressFamily(
[in] LONG dwFlags
);
Paramètres
[in] dwFlags
Entier (valeur de 4 octets) qui spécifie la famille d’adresses à utiliser par l’objet Device Finder pour filtrer les appareils trouvés.
Les valeurs suivantes sont valides.
Valeur | Signification |
---|---|
|
IPv4 (IP version 4) |
|
IPv6 (IP version 6) |
|
IPv4 et IPv6 |
Valeur retournée
Si la méthode réussit, la valeur de retour est S_OK. Sinon, la méthode retourne l’un des codes d’erreur COM définis dans WinError.h.
Remarques
Définition de l’indicateur
L’indicateur de famille d’adresses doit être défini au moment approprié afin d’affecter la recherche :
- Pour une recherche asynchrone, définissez l’indicateur de famille d’adresses avant d’appeler la méthode IUPnPDeviceFinder::CreateAsyncFind .
- Pour une recherche synchrone, définissez l’indicateur de famille d’adresses avant d’appeler la méthode IUPnPDeviceFinder::FindByUDN ou IUPnPDeviceFinder::FindByType .
Filtrage des appareils trouvés
Scénario 1 : une application de point de contrôle définit l’indicateur de famille d’adresses sur UPNP_ADDRESSFAMILY_IPV4, puis démarre une recherche :
- Si le Finder d’appareil découvre un appareil qui a une adresse IPv6, Device Finder n’avertit pas l’application de l’appareil. Si le même appareil acquiert ultérieurement une adresse IPv4, Device Finder notifiera l’application de l’appareil et fournira l’adresse IPv4.
- Si le Finder d’appareils découvre un appareil qui a une adresse IPv4, Device Finder avertit l’application de l’appareil et fournit l’adresse IPv4. Si le même appareil acquiert ultérieurement une adresse IPv6, Device Finder n’informera pas l’application de l’adresse supplémentaire de l’appareil.
- Si Device Finder découvre un appareil qui a à la fois des adresses IPv4 et IPv6, il notifiera l’application de l’appareil, mais il fournira uniquement l’adresse IPv4.
- Si un appareil connu de l’application annonce un changement d’adresse, Device Finder n’informe l’application de la modification que lorsque la nouvelle adresse est une adresse IPv4.
- Si un appareil connu de l’application a à la fois des adresses IPv4 et IPv6 et que Device Finder reçoit un message d’bye-bye à partir de l’adresse IPv6 de l’appareil, Device Finder avertit l’application même si l’application ne connaît que l’adresse IPv4. En d’autres termes, si un appareil connu de l’application quitte le réseau, Device Finder l’avertit, quelle que soit l’adresse de l’appareil.
Scénario 2 : une application définit l’indicateur de famille d’adresses sur UPNP_ADDRESSFAMILY_IPV6, puis démarre une recherche :
- Un ensemble de règles similaire s’applique comme décrit dans le scénario 1, mais pour la famille d’adresses opposée.
Scénario 3 : une application définit l’indicateur de famille d’adresses sur UPNP_ADDRESSFAMILY_BOTH, puis démarre une recherche :
- Si le Finder d’appareils découvre un appareil qui a une adresse IPv4 ou une adresse IPv6, Device Finder avertit l’application de l’appareil et fournit l’adresse. Si le même appareil acquiert ultérieurement une adresse d’une autre famille d’adresses, Device Finder n’informera pas l’application de l’adresse supplémentaire de l’appareil.
- Si le Finder d’appareils découvre un appareil qui a des adresses IPv4 et IPv6, il notifiera l’application de l’appareil, mais il ne fournira qu’une seule des adresses choisies de manière aléatoire.
- Si un appareil connu de l’application annonce un changement d’adresse, Device Finder l’informera de la modification.
- Si un appareil connu de l’application quitte le réseau, Device Finder en informera l’application.
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Aucun pris en charge |
Plateforme cible | Windows |
En-tête | upnp.h |
DLL | Upnp.dll |