互動式使用者介面
實作驗證通訊協議的廠商也可能提供通訊協定的互動式使用者介面(UI)。 互動式UI可讓驗證通訊協定在驗證會話期間視需要從使用者取得其他資訊。
互動式UI可以實作在與驗證通訊協定相同的 DLL 中,或在個別的 DLL 中實作。 此外,實作互動式UI的 DLL 可以支援多個驗證通訊協定。 互動式UI的 DLL 路徑會儲存在 驗證通訊協定的機碼底下的 RAS_EAP_VALUENAME_INTERACTIVEUI 登錄值中。 如需建立此登錄值的詳細資訊,請參閱 EAP 安裝。
互動式UI的 DLL 應該匯出下列函式的進入點:
互動式使用者介面必須支援WM_COMMAND LOWORD (wParam) 等於 IDCANCEL 的訊息。
若要顯示互動式 UI,驗證通訊協定應將PPP_EAP_OUTPUT結構的 fInvokeInteractiveUI 成員設定為 TRUE。 驗證通訊協定也可以選擇性地將 pUIContextData 和 dwSizeOfUIContextData 成員設定為 TRUE。 驗證服務會使用這些成員的值,將內容數據傳遞至互動式 UI。 驗證通訊協定會將PPP_EAP_OUTPUT結構當做 RasEapMakeMessage 函式中的參數傳回。
驗證服務會呼叫 RasEapInvokeInteractiveUI 來叫用互動式 UI。 接著,服務會將驗證通訊協議傳遞至互動式 UI 在對 RasEapMakeMessage 的後續呼叫中傳回的數據指標。 指標會以PPP_EAP_INPUT結構的成員的形式傳遞。 在 RasEapMakeMessage 傳回之後,服務會呼叫 RasEapFreeMemory 以釋放資訊所佔用的記憶體。 因此,驗證通訊協議應該在呼叫 RasEapMakeMessage 期間,將資訊複製到私人記憶體緩衝區。