共用方式為


要求使用者互動

 

在呼叫 Dot11ExtIhvInitAdapter之後,IHV 延伸模組 DLL 可以隨時呼叫 Dot11ExtSendUIRequest 函式來要求與使用者互動。 作業系統會將所有使用者互動要求轉送到 IHV UI 延伸模組 DLL,這會處理要求,並將適當的使用者介面 (UI) 頁面顯示給使用者。

當要求完成時,作業系統會呼叫 Dot11ExtIhvProcessUIResponse 函式,以轉送 IHV UI 延伸模組 DLL 的結果以進行使用者互動。 如需 IHV UI 延伸模組 DLL 的詳細資訊,請參閱 原生 802.11 IHV UI 延伸模組 DLL

例如,IHV 延伸模組 DLL 可以要求下列任一項的使用者互動。

  • 通知使用者有關關聯前或後關聯作業的階段。

  • 提示使用者在關聯後作業期間輸入其認證以進行驗證。

當它呼叫Dot11ExtSendUIRequest函式時,IHV Extensions DLL 會將指標傳遞給pIhvUIRequest參數DOT11EXT_IHV_UI_REQUEST結構。 DOT11EXT_IHV_UI_REQUEST 結構會指定要求,例如全域唯一識別碼 (GUID) ,可識別 UI 要求以及將處理此要求的目標 UI 頁面 (CLSID) COM 類別識別碼。

當 IHV UI 延伸模組 DLL 完成使用者通知時,作業系統會呼叫 Dot11ExtIhvProcessUIResponse 函式 。 如果使用者已透過通知輸入任何資料,作業系統會將包含資料的緩衝區指標傳遞至 pvResponseBuffer 參數。

作業系統可能會定期查詢擱置通知要求的狀態。 在此情況下,作業系統會呼叫 Dot11ExtIhvIsUIRequestPending ,並將 UI 要求的 GUID 傳遞至 guidUIRequest 參數。

呼叫 Dot11ExtSendUIRequest時,IHV 延伸模組 DLL 必須遵循這些指導方針。

  • IHV 延伸模組 DLL 不需要序列化 Dot11ExtSendUIRequest的呼叫。 DLL 隨時可以有多個擱置的 UI 要求。

  • 只有在針對該 GUID 呼叫 Dot11ExtIhvProcessUIResponse 時,才會完成特定 GUID 的 UI 要求。 在此情況下,在 呼叫 Dot11ExtIhvProcessUIResponse 之前,IHV 延伸模組 DLL 不得釋放 UI 要求的任何已配置資源。

  • 每當呼叫 Dot11ExtIhvAdapterResetDot11ExtIhvDeinitAdapter 時,就會取消所有擱置的 UI 要求。 每當 呼叫 Dot11ExtIhvProcessSessionChange 時,也會取消所有擱置的 UI 要求,並將 uEventType 參數設定為 WTS_SESSION_LOGOFF。

    在這些情況下,IHV 延伸模組 DLL 必須釋放每個擱置 UI 要求的所有已配置資源。

每當基本服務集上的線上狀態變更 (BSS) 網路時,作業系統都可以起始使用者互動本身。 在此情況下,作業系統會呼叫 Dot11ExtIhvQueryUIRequest 函式。 IHV 延伸模組 DLL 會配置緩衝區,並將其格式化為 DOT11EXT_IHV_UI_REQUEST 結構。 DLL 會設定DOT11EXT_IHV_UI_REQUEST結構的成員,以參考適合線上狀態變更的 UI 頁面。 作業系統負責顯示 UI 頁面。

注意IHV 延伸模組必須透過Dot11ExtAllocateBuffer配置包含DOT11EXT_IHV_UI_REQUEST結構的緩衝區。 從 Dot11ExtIhvQueryUIRequest傳回之後,DLL 不得釋放緩衝區。