Anfordern einer Benutzerinteraktion
Nach dem Aufruf von Dot11ExtIhvInitAdapter kann die IHV-Erweiterungen-DLL jederzeit eine Interaktion mit dem Benutzer anfordern, indem sie die Dot11ExtSendUIRequest-Funktion aufruft . Das Betriebssystem leitet alle Benutzerinteraktionsanforderungen an die DLL für IHV-UI-Erweiterungen weiter, die die Anforderung verarbeitet und dem Benutzer die entsprechenden Benutzeroberflächenseiten anzeigt.
Wenn die Anforderung abgeschlossen wurde, ruft das Betriebssystem die Dot11ExtIhvProcessUIResponse-Funktion auf, um die Ergebnisse der IHV UI Extensions DLL für die Benutzerinteraktion weiterzuleiten. Weitere Informationen zur DLL für IHV-UI-Erweiterungen finden Sie unter Native 802.11 IHV UI Extensions DLL.
Die DLL für IHV-Erweiterungen kann beispielsweise eine Benutzerinteraktion für eine der folgenden Aktionen anfordern.
Benachrichtigen Sie den Benutzer über die Phasen eines Vorgangs vor oder nach der Zuordnung.
Fordern Sie den Benutzer auf, seine Anmeldeinformationen für die Authentifizierung während des Vorgangs nach der Zuordnung einzugeben.
Wenn die Dot11ExtSendUIRequest-Funktion aufgerufen wird, übergibt die IHV-Erweiterungen-DLL einen Zeiger auf eine DOT11EXT_IHV_UI_REQUEST Struktur an den pIhvUIRequest-Parameter . Die DOT11EXT_IHV_UI_REQUEST-Struktur gibt die Anforderung an, z. B. die globally unique ID (GUID), die die UI-Anforderung sowie die COM-Klassen-ID (CLSID) der Ziel-UI-Seite identifiziert, die diese Anforderung behandelt.
Wenn die IHV UI Extensions DLL die Benutzerbenachrichtigung abgeschlossen hat, ruft das Betriebssystem die Dot11ExtIhvProcessUIResponse-Funktion auf. Wenn der Benutzer Daten über die Benachrichtigung eingegeben hat, übergibt das Betriebssystem einen Zeiger an den Puffer, der die Daten enthält, an den parameter pvResponseBuffer .
Das Betriebssystem kann in regelmäßigen Abständen die status ausstehender Benachrichtigungsanforderungen abfragen. In dieser Situation ruft das Betriebssystem dot11ExtIhvIsUIRequestPending auf und übergibt die GUID der UI-Anforderung an den guidUIRequest-Parameter .
Beim Aufrufen von Dot11ExtSendUIRequest muss die IHV-Erweiterungen-DLL diese Richtlinien befolgen.
Die DLL für IHV-Erweiterungen muss die Aufrufe von Dot11ExtSendUIRequest nicht serialisieren. Die DLL kann jederzeit mehrere ausstehende UI-Anforderungen enthalten.
Die UI-Anforderung für eine bestimmte GUID wird nur abgeschlossen, wenn Dot11ExtIhvProcessUIResponse für diese GUID aufgerufen wird. In dieser Situation darf die DLL für IHV-Erweiterungen keine zugeordneten Ressourcen für die UI-Anforderung freigeben, bis Dot11ExtIhvProcessUIResponse aufgerufen wird.
Alle ausstehenden Ui-Anforderungen werden abgebrochen, wenn Dot11ExtIhvAdapterReset oder Dot11ExtIhvDeinitAdapter aufgerufen wird. Alle ausstehenden Ui-Anforderungen werden ebenfalls abgebrochen, wenn Dot11ExtIhvProcessSessionChange aufgerufen wird, wobei der uEventType-Parameter auf WTS_SESSION_LOGOFF festgelegt ist.
In diesen Situationen muss die DLL für IHV-Erweiterungen alle zugeordneten Ressourcen für jede ausstehende UI-Anforderung freigeben.
Das Betriebssystem kann die Benutzerinteraktion selbst initiieren, wenn sich der Verbindungszustand im BSS-Netzwerk (Basic Service Set) ändert. In dieser Situation ruft das Betriebssystem die Dot11ExtIhvQueryUIRequest-Funktion auf. Die IHV-Erweiterungen-DLL weist einen Puffer zu und formatiert ihn als DOT11EXT_IHV_UI_REQUEST-Struktur . Die DLL legt die Elemente der DOT11EXT_IHV_UI_REQUEST-Struktur so fest, dass sie auf eine UI-Seite verweisen, die für die Änderung der Verbindung status geeignet ist. Das Betriebssystem ist für die Anzeige der Ui-Seite verantwortlich.
Hinweis Die IHV-Erweiterungen müssen den Puffer, der die DOT11EXT_IHV_UI_REQUEST-Struktur enthält, über Dot11ExtAllocateBuffer zuordnen. Die DLL darf den Puffer nach der Rückgabe von Dot11ExtIhvQueryUIRequest nicht freigeben.