Partager via


Demande d’interaction utilisateur

 

À tout moment après l’appel à Dot11ExtIhvInitAdapter, la DLL extensions IHV peut demander une interaction avec l’utilisateur en appelant la fonction Dot11ExtSendUIRequest . Le système d’exploitation transfère toutes les demandes d’interaction utilisateur à la DLL des extensions d’interface utilisateur IHV, qui traite la demande et affiche les pages d’interface utilisateur appropriées à l’utilisateur.

Une fois la demande terminée, le système d’exploitation appelle la fonction Dot11ExtIhvProcessUIResponse pour transférer les résultats de la DLL des extensions d’interface utilisateur IHV pour l’interaction utilisateur. Pour plus d’informations sur la DLL des extensions d’interface utilisateur IHV, consultez Dll des extensions d’interface utilisateur IHV natives 802.11.

Par exemple, la DLL extensions IHV peut demander une interaction utilisateur pour l’un des éléments suivants.

  • Informez l’utilisateur des étapes d’une opération de pré-association ou de post-association.

  • Invitez l’utilisateur à entrer ses informations d’identification pour l’authentification pendant l’opération post-association.

Quand elle appelle la fonction Dot11ExtSendUIRequest , la DLL extensions IHV transmet un pointeur vers une structure DOT11EXT_IHV_UI_REQUEST vers le paramètre pIhvUIRequest . La structure DOT11EXT_IHV_UI_REQUEST spécifie la requête, par exemple l’ID global unique (GUID), qui identifie la demande d’interface utilisateur ainsi que l’ID de classe COM (CLSID) de la page d’interface utilisateur cible qui gérera cette requête.

Lorsque la DLL des extensions d’interface utilisateur IHV a terminé la notification de l’utilisateur, le système d’exploitation appelle la fonction Dot11ExtIhvProcessUIResponse . Si l’utilisateur avait entré des données via la notification, le système d’exploitation transmet un pointeur vers la mémoire tampon, qui contient les données, vers le paramètre pvResponseBuffer .

Le système d’exploitation peut interroger régulièrement la status des demandes de notification en attente. Dans ce cas, le système d’exploitation appelle dot11ExtIhvIsUIRequestPending et transmet le GUID de la demande d’interface utilisateur au paramètre guidUIRequest .

Lors de l’appel de Dot11ExtSendUIRequest, la DLL des extensions IHV doit suivre ces instructions.

  • La DLL extensions IHV n’a pas besoin de sérialiser les appels à Dot11ExtSendUIRequest. La DLL peut avoir plusieurs demandes d’interface utilisateur en attente à tout moment.

  • La demande d’interface utilisateur pour un GUID particulier est effectuée uniquement lorsque Dot11ExtIhvProcessUIResponse est appelé pour ce GUID. Dans ce cas, la DLL des extensions IHV ne doit libérer aucune ressource allouée pour la requête d’interface utilisateur tant que Dot11ExtIhvProcessUIResponse n’est pas appelé.

  • Toutes les demandes d’interface utilisateur en attente sont annulées chaque fois que Dot11ExtIhvAdapterReset ou Dot11ExtIhvDeinitAdapter est appelé. Toutes les demandes d’interface utilisateur en attente sont également annulées chaque fois que Dot11ExtIhvProcessSessionChange est appelé avec le paramètre uEventType défini sur WTS_SESSION_LOGOFF.

    Dans ces situations, la DLL des extensions IHV doit libérer toutes les ressources allouées pour chaque demande d’interface utilisateur en attente.

Le système d’exploitation peut initier lui-même une interaction utilisateur chaque fois que l’état de la connexion change sur le réseau BSS (Basic Service Set). Dans ce cas, le système d’exploitation appelle la fonction Dot11ExtIhvQueryUIRequest . La DLL des extensions IHV alloue une mémoire tampon et la met en forme en tant que structure DOT11EXT_IHV_UI_REQUEST . La DLL définit les membres de la structure DOT11EXT_IHV_UI_REQUEST pour qu’ils référencent une page d’interface utilisateur appropriée pour la modification de la status de connexion. Le système d’exploitation est chargé d’afficher la page de l’interface utilisateur.

Note Les extensions IHV doivent allouer la mémoire tampon qui contient la structure DOT11EXT_IHV_UI_REQUEST via Dot11ExtAllocateBuffer. La DLL ne doit pas libérer la mémoire tampon après le retour de Dot11ExtIhvQueryUIRequest.