Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le réseau hébergé sans fil est une nouvelle fonctionnalité WLAN prise en charge sur Windows 7 et Windows 8. Il est également pris en charge sur Windows Server 2012 et Windows Server 2008 R2 avec le service LAN sans fil installé. Cette fonctionnalité implémente deux fonctions principales :
- Virtualisation d’une carte sans fil physique en plusieurs cartes sans fil virtuelles parfois appelée Wi-Fi virtuel.
- Un point d’accès sans fil basé sur un logiciel (AP) parfois appelé SoftAP qui utilise un adaptateur sans fil virtuel désigné.
Le partage de connexion Internet (ICS) est une fonctionnalité de Windows fournie via le service SharedAccess. Strictement, SharedAccess permet le partage réseau via un ordinateur où l’accès réseau partagé ne fournit pas nécessairement l’accès à Internet. Nous utilisons le terme ICS et SharedAccess de façon interchangeable dans cette section, étant donné que le partage de connexion Internet est un scénario majeur pour le réseau hébergé sans fil et que le terme ICS est mieux connu de la communauté des utilisateurs.
Le réseau hébergé sans fil est étroitement lié à ICS pour permettre à la fois le réseau de zone personnelle sans fil (PAN) et les scénarios de partage Internet. Cette section fournit des recommandations générales aux développeurs d’applications sur la façon d’intégrer un réseau hébergé sans fil et ICS à l’aide du réseau hébergé sans fil public et des API ICS.
Partage de connexion Internet
Le service ICS fonctionne dans l’un des deux modes possibles :
Mode autonome
Seule la fonction serveur DHCPv4 fonctionne lorsque le service ICS est appelé. Il s’agit d’un mode d’opération spécial pour ICS et est disponible uniquement via le réseau hébergé sans fil. Un utilisateur ou une application n’est pas en mesure de démarrer et d’arrêter directement icS autonome via des API ICS publiques ou des commandes netsh . Le démarrage du réseau hébergé sans fil implique généralement de démarrer ICS en mode autonome pour utiliser la fonction serveur DHCPv4 pour fournir des adresses IPv4 privées pour les appareils connectés. La communication réseau pour les appareils connectés est limitée à l’envoi et à la réception de paquets réseau entre un appareil connecté et l’ordinateur local hébergeant le réseau hébergé sans fil et entre les appareils connectés eux-mêmes. Cela permet efficacement le scénario de réseau de zone personnelle sans fil pour le réseau hébergé sans fil.
Mode plein
Toutes les fonctionnalités d’ICS fonctionnent lorsque le service est appelé, comme la traduction d’adresses réseau et les fonctions de serveur DHCP pour IPv4 et IPv6. Il s’agit du mode normal d’opération pour ICS. Un utilisateur ou une application peut démarrer et arrêter le mode ICS complet via des API publiques ou des commandes netshell. Par exemple, ce service peut être arrêté en utilisant net stop sharedaccess à partir d’une invite de commande avec privilèges administrateur. La combinaison d'un réseau sans fil hébergé avec ICS complet fait que la communication entre les appareils connectés n'est pas limitée au PAN sans fil. Tout appareil connecté a accès au réseau (par exemple, Internet) via la connexion réseau partagée à partir de l’ordinateur exécutant le réseau hébergé sans fil. Cela permet efficacement le scénario de partage réseau pour le réseau hébergé sans fil.
Dans cette section, nous utilisons le terme ICS complet pour désigner le cas où toutes les fonctions ICS sont appelées dans le service ICS pour fournir l’accès à toutes les fonctionnalités ICS complètes avec le réseau hébergé sans fil.
Les deux modes de fonctionnement ICS s'excluent mutuellement, le mode complet ICS ayant la priorité. Le service ICS peut passer du mode autonome au mode plein, mais pas du mode plein au mode autonome. Le mode autonome ICS a été introduit dans Windows 7 et sur Windows Server 2008 R2 avec le service LAN sans fil installé conjointement avec la fonctionnalité réseau hébergé sans fil. Il n’est pas disponible dans les versions précédentes de Windows.
Toute opération ICS complète implique deux cartes réseau différentes dans le système :
- Interface publique. Il s’agit de l’interface réseau avec accès à Internet. Il s’agit de cette interface que l’ordinateur local exécutant ICS utilise pour partager Internet avec les clients et les appareils qui s’y connectent via SoftAP.
- Interface privée. Il s’agit de l’interface réseau que les autres appareils utilisent pour se connecter à l’ordinateur local exécutant ICS. Un serveur DHCPv4 s’exécute sur cette interface privée pour fournir des adresses IP locales privées aux autres ordinateurs distants.
Lorsque l’interface publique n’a pas d’accès à Internet, le serveur DHCP sur l’interface privée continue de fournir des adresses IP locales aux appareils connectés. IcS autonome implique uniquement l’interface privée sur laquelle SoftAP est en cours d’exécution ; elle n’implique aucune interface publique.
À tout moment, il existe au plus une instance d’ICS complète s’exécutant sur l’ordinateur local. Si l’icS complet est déjà en cours d’exécution sur l’ordinateur local, le démarrage d’un autre ICS complet présente les comportements fonctionnels suivants :
- Si les interfaces publiques et privées du nouveau ICS complet sont identiques à celles des ICS complets existants, le démarrage du deuxième ICS complet équivaut à un no-op.
- Si la nouvelle interface publique est différente de l’ancienne interface publique, mais que la nouvelle interface privée est identique à l’ancienne interface privée, le démarrage d’un deuxième ICS complet a peu d’impact sur les appareils connectés sur la même interface privée. La possibilité d’accéder à Internet peut changer avec la nouvelle interface publique.
- Si la nouvelle interface privée est différente de l’ancienne interface privée, les fonctions ICS cessent de fonctionner sur l’ancienne interface privée et commencent à s’appliquer à la nouvelle interface privée. Tout appareil distant qui se connecte à l’ordinateur local à l’aide de l’ancienne interface privée perd la connectivité IP à l’ordinateur local.
Lorsque l’ICS complet est déjà en cours d’exécution, l’appel d’un second ICS complet est perturbateur pour les appareils connectés à distance utilisant l’ancienne interface privée, tant que la deuxième intégration ICS utilise une nouvelle interface privée différente.
Pour gérer et utiliser le service ICS pour prendre en charge l’intégration ICS au réseau hébergé sans fil, une application logicielle doit d’abord obtenir une interface INetSharingManager . L’interface INetSharingManager permet d’accéder directement ou indirectement à toutes les autres interfaces COM de l’API ICS. La méthode get_SharingInstalled sur l’interface INetSharingManager indique si l’ordinateur local prend en charge le partage de connexions. La méthode get_EnumEveryConnection sur l’interface INetSharingManager récupère une interface d’énumération pour toutes les connexions dans le dossier connexions. La méthode get_INetSharingConfigurationForINetConnection récupère une interface INetSharingConfiguration pour la connexion spécifiée. Les méthodes de l’interface INetSharingConfiguration peuvent être utilisées pour interroger et modifier les paramètres ICS.
Le réseau hébergé sans fil doit être démarré avant d’appeler la méthode get_EnumEveryConnection sur l’interface INetSharingManager pour énumérer toutes les connexions dans le dossier connexions.
Pour plus d’informations sur ICS et les interfaces publiques et les méthodes qui peuvent être utilisées pour interroger et modifier les paramètres ICS, consultez la documentation sur le partage de connexion Internet et le pare-feu de connexion Internet.
Intégration du réseau hébergé et icS
Quand icS complet n’est pas en cours d’exécution, le démarrage d’un réseau hébergé sans fil démarre également en interne le service ICS en mode autonome avec uniquement la fonction serveur DHCPv4 pour allouer des adresses IP pour les appareils connectés sur l’interface réseau hébergée sans fil. La plage d’adresses de sous-réseau du serveur DHCPv4 autonome est 192.168.173.0/24. Cela diffère de la plage de sous-réseau de 192.168.137.0/24 utilisée avec icS complet.
Le démarrage d’un réseau hébergé sans fil avec icS complet utilise la logique suivante :
- Si icS complet n’est pas déjà en cours d’exécution, le démarrage d’un réseau hébergé sans fil démarre également le service ICS avec le serveur DHCPv4 autonome.
- Si icS complet est déjà en cours d’exécution et que l’interface privée est l’interface réseau hébergée sans fil, démarrez simplement le réseau hébergé sans fil.
- Si icS complet est déjà en cours d’exécution mais que l’interface privée n’est pas l’interface réseau hébergée sans fil, le réseau hébergé sans fil est démarré sans la fonction serveur DHCPv4 sur l’interface réseau hébergée sans fil.
L’impact de la logique ci-dessus met en évidence les faits suivants :
- ICS ne passe pas du mode complet au mode autonome.
- Le mode autonome ne peut être appelé que par le réseau hébergé sans fil quand ICS ne s’exécute pas en mode plein.
- Si ICS s’exécute en mode autonome, il est préempté en mode complet si un utilisateur ou une application démarre ICS en mode plein.
- La transition du mode autonome au mode plein dans ICS sera perturbatrice des appareils connectés dans le pan sans fil si l’interface privée d’ICS complète n’est pas la même que celle de SoftAP.
Il faut du temps pour démarrer ou arrêter le service ICS sur l’ordinateur local en mode complet ou autonome. Une application doit vérifier l’état du service ICS à l’aide de la fonction NotifyServiceStatusChange pour vous assurer que le service ICS n’est pas dans l’état de démarrage/arrêt en attente avant de démarrer ou d’arrêter le réseau hébergé sans fil pour une utilisation avec l’intégration ICS.
Démarrage et arrêt du réseau hébergé sans fil
Windows fournit une plateforme où plusieurs applications simultanées sont autorisées à gérer un réseau hébergé sans fil en même temps. Plus précisément, chaque application peut démarrer et arrêter le réseau hébergé sans fil par lui-même, sans connaître préalablement d’autres applications.
Il existe deux ensembles de fonctions utilisées pour démarrer et arrêter un réseau hébergé.
Plusieurs applications peuvent nécessiter l’utilisation du réseau hébergé sans fil. Les fonctions WlanHostedNetworkStartUsing et WlanHostedNetworkStopUsing démarrent et arrêtent un réseau hébergé sans fil de manière compatible avec d’autres applications simultanées. Les fonctions WlanHostedNetworkStartUsing et WlanHostedNetworkStopUsing permettent à une application d’avoir une référence au réseau hébergé sans fil. Ce mécanisme maintient l’exécution du réseau hébergé sans fil, à condition qu’au moins une autre application ait une référence actuelle au réseau hébergé sans fil. Tout utilisateur peut appeler ces fonctions. Les appels réussis à WlanHostedNetworkStartUsing doivent être mis en correspondance par les appels à la fonction WlanHostedNetworkStopUsing . Toute modification d’état du réseau hébergé provoquée par la fonction WlanHostedNetworkStartUsing est automatiquement annulée si l’application appelante ferme son handle d’appel (en appelant WlanCloseHandle avec le même paramètre hClientHandle transmis à WlanHostedNetworkStartUsing) ou si le processus se termine.
Les fonctions WlanHostedNetworkForceStart et WlanHostedNetworkForceStop forcent le démarrage et l’arrêt d’un réseau hébergé sans fil. Ces fonctions ne peuvent être appelées que si l’utilisateur dispose du privilège élevé approprié. Les appels réussis à WlanHostedNetworkForceStart peuvent éventuellement être mis en correspondance par un appel à la fonction WlanHostedNetworkForceStop , en fonction de la conception de l’application. Ces fonctions transfèrent l’état du réseau hébergé sans fil sans associer la requête au handle d’appel de l’application. Toute modification d’état du réseau hébergé provoquée par la fonction WlanHostedNetworkForceStart ne serait pas annulée automatiquement si l’application appelante ferme son handle d’appel (en appelant WlanCloseHandle avec le même paramètre hClientHandle transmis à WlanHostedNetworkStartUsing) ou si le processus se termine. Si l’application qui a appelé la fonction WlanHostedNetworkForceStart se ferme sans appeler l’une des fonctions pour arrêter le réseau hébergé sans fil, le réseau hébergé reste en cours d’exécution. Une application peut appeler la fonction WlanHostedNetworkForceStart après avoir vérifié qu’un utilisateur système élevé accepte les exigences de puissance accrues impliquées dans l’exécution du réseau hébergé sans fil pendant des périodes prolongées.
Les recommandations générales sur les fonctions à appeler pour démarrer et arrêter un réseau hébergé sans fil sont les suivantes :
- Utilisez les fonctions WlanHostedNetworkStartUsing et WlanHostedNetworkStopUsing au sein d’une application pour démarrer et arrêter un réseau hébergé sans fil.
- N’utilisez pas la fonction WlanHostedNetworkForceStart pour démarrer un réseau hébergé sans fil, sauf s’il est absolument requis par l’application. La fonction WlanHostedNetworkForceStart nécessite également des privilèges élevés.
- Utilisez uniquement la fonction WlanHostedNetworkForceStop comme méthode de récupération. La fonction WlanHostedNetworkForceStop entraîne l’arrêt immédiat d’un réseau hébergé sans fil. D’autres applications qui écoutent les notifications de réseau hébergé sans fil peuvent avoir besoin d’effectuer des actions de récupération. Pour plus d’informations, consultez la discussion ci-dessous sur la séquence de récupération pour le réseau hébergé sans fil.
Séquence de démarrage pour le réseau hébergé sans fil
Pour une application qui démarre un réseau hébergé sans fil avec icS complet, il est recommandé de démarrer le réseau hébergé sans fil, puis de démarrer l’ICS complet. Si un réseau hébergé sans fil est déjà en cours d’exécution, une application doit utiliser la fonction WlanHostedNetworkForceStop pour arrêter le réseau hébergé sans fil uniquement si l’ICS complet est requis, mais n’a pas été activé avant le démarrage du réseau hébergé. Cela permettra à d’autres applications de récupérer des interruptions potentielles causées par le début de l’ICS complet. Pour plus d’informations, consultez la discussion ci-dessous sur la séquence de récupération pour le réseau hébergé sans fil. L’opération combinée doit réussir et échouer dans son ensemble.
Remarque
Le réseau sans fil hébergé doit être démarré avant de tenter d'énumérer l'adaptateur correspondant à l'aide de l'interface IEnumNetSharingEveryConnection.
Les étapes ordonnées suivantes sont la séquence de démarrage recommandée dans une application à l’aide d’un réseau hébergé sans fil avec icS complet :
- Appelez la fonction WlanHostedNetworkInitSettings pour vous assurer que le réseau hébergé sans fil est configuré et prêt à être utilisé.
- Appelez les fonctions WlanHostedNetworkQueryStatus et WlanHostedNetworkQueryProperty pour déterminer si le réseau hébergé sans fil est autorisé et disponible. Si le réseau hébergé sans fil n’est pas autorisé et n’est pas disponible, retournez une erreur.
- Testez si le service ICS utilisé pour l'ICS complet est autorisé. Si le service ICS ne peut pas être démarré, retournez une erreur.
- Appelez la fonction WlanHostedNetworkForceStop pour forcer l’arrêt du réseau hébergé sans fil.
- Appelez la fonction WlanHostedNetworkStartUsing pour démarrer le réseau hébergé sans fil.
- Si le réseau hébergé sans fil ne parvient pas à démarrer, signalez une erreur.
- Si icS complet est déjà en cours d’exécution et que l’interface publique ou privée actuelle est différente de la nouvelle interface à utiliser, cachez les interfaces publiques et privées actuelles. Une application peut également choisir de retourner une erreur ou d'inciter l'utilisateur à réagir si l'intégration avec ICS est déjà en fonctionnement.
- Démarrez l’icS complète avec les nouveaux paramètres des interfaces publiques et privées.
- Si l’icS complet ne parvient pas à démarrer avec ces paramètres, essayez de démarrer le service ICS complet avec les interfaces publiques et privées mises en cache si icS complet était en cours d’exécution avant. Appelez la fonction WlanHostedNetworkForceStop pour arrêter le réseau hébergé sans fil et renvoyer une erreur.
- Confirmez la réussite du réseau hébergé sans fil et du partage de connexion Internet complet.
Séquence d’arrêt pour le réseau hébergé sans fil
Lorsque vous utilisez un réseau hébergé sans fil avec icS complet, une application qui a terminé son travail peut arrêter le réseau hébergé sans fil et le service ICS utilisé pour l’icS complète. Dans ce cas, il est recommandé d’appeler la fonction WlanHostedNetworkForceStop pour arrêter le réseau hébergé plutôt que d’appeler la fonction WlanHostedNetworkStopUsing . La fonction WlanHostedNetworkForceStop arrête le réseau hébergé sans fil et sert également à permettre à d’autres applications de récupérer. Pour plus d’informations, consultez la discussion ci-dessous sur la séquence de récupération pour le réseau hébergé sans fil.
Les étapes suivantes, dans l'ordre, constituent la séquence d’arrêt recommandée pour une application utilisant un réseau hébergé sans fil et ICS complet :
- Arrêtez toute l’ICS.
- Appelez la fonction WlanHostedNetworkForceStop pour arrêter le réseau hébergé sans fil.
Une application utilisant un réseau hébergé sans fil sans icS complet qui est terminé avec son travail doit simplement appeler la fonction WlanHostedNetworkStopUsing ou WlanHostedNetworkForceStop pour arrêter le réseau hébergé sans fil. Si la fonction WlanHostedNetworkStartUsing a été appelée pour démarrer le réseau hébergé sans fil, l’application doit appeler la fonction WlanHostedNetworkStopUsing pour arrêter le réseau hébergé sans fil. Si le réseau hébergé sans fil a déjà été démarré avant l’application ou l’application appelée fonction WlanHostedNetworkForceStart pour forcer le démarrage du réseau hébergé sans fil, l’application peut appeler la fonction WlanHostedNetworkForceStop pour arrêter le réseau hébergé sans fil ou ne rien faire (laissez le réseau hébergé sans fil démarré) selon le scénario.
Séquence de récupération pour le réseau hébergé sans fil
Une application utilisant le réseau hébergé sans fil peut être affectée par les actions d’autres applications. Le service ICS et les interfaces permettant de gérer ICS ne fournissent aucune méthode pour qu’une application s’inscrive aux notifications de modification ICS. Si une autre application appelle les méthodes EnableSharing ou DisableSharing sur l’interface INetSharingConfiguration pour activer ou désactiver le partage sur une connexion, un message est envoyé à l’interface utilisateur (l’écran) sur l’ordinateur local et non à d’autres applications. Par conséquent, une application doit s’appuyer sur les notifications de réseau hébergé sans fil pour effectuer des actions de récupération lorsque des modifications icS ou réseau hébergé sans fil se produisent.
Une application utilisant le réseau hébergé sans fil doit s’inscrire pour les notifications de réseau hébergé sans fil en appelant le WlanRegisterNotification. Si les notifications pour un réseau hébergé sans fil uniquement sont nécessaires, l’application doit passer WLAN_NOTIFICATION_SOURCE_HNWK dans le paramètre dwNotifSource passé à l’objet WlanRegisterNotification. Si d’autres notications sans fil sont également nécessaires, WLAN_NOTIFICATION_SOURCE_HNWK doit être combinée avec les constantes sources de notification pour d’autres types de notifications sans fil souhaitées et transmettre cette valeur dans le paramètre dwNotifSource .
La séquence de récupération est la même pour les applications avec ou sans icS complet, en supposant que les applications ne veulent pas redémarrer le service ICS. Lors de la réception d’une notification de réseau hébergé sans fil indiquant que le réseau hébergé a cessé, procédez comme suit :
- Si l'application a utilisé WlanHostedNetworkForceStart pour démarrer le réseau hébergé sans fil, alors vous devez redémarrer le réseau hébergé en appelant WlanHostedNetworkForceStart. Sinon, appelez WlanHostedNetworkStartUsing pour redémarrer le réseau hébergé sans fil.
Séquence de récupération pour les appareils connectés
Les appareils distants ou les ordinateurs connectés au réseau hébergé sans fil peuvent être affectés par les actions d’autres applications qui affectent ICS et le réseau hébergé sans fil. Heureusement, la plupart des appareils ont intégré une logique de nouvelle tentative dans l’application d’appareil pour gérer une perte temporaire de signal ou d’itinérance.
Une séquence de récupération possible pour les appareils ou les ordinateurs connectés au réseau hébergé sans fil qui perdent le contact est la suivante :
- Le pilote de périphérique sans fil indique une déconnexion de média aux couches supérieures de la pile réseau de l'appareil.
- L’application d’appareil démarre des vérifications périodiques de la disponibilité du réseau hébergé sans fil.
- Une fois que l’application de l’appareil détecte à nouveau le réseau hébergé sans fil, l’appareil lance une connexion sans fil.
- Lors d’une connexion réussie avec le réseau hébergé sans fil, l’application d’appareil met à jour ses paramètres IP en conséquence.
Rubriques connexes