[This is preliminary documentation and subject to change.]
The RAS Connection Manager calls the RasEapInvokeInteractiveUI function to display a dialog to obtain authentication data from the user.
DWORD RasEapInvokeInteractiveUI (
DWORD dwEapTypeId, // identifies the protocol
HINSTANCE hInstance, // handle to DLL module
HWND hwndParent, // handle to parent window
PBYTE pUIContextData, // pointer to context data
DWORD dwSizeofUIContextData, // size of context data
PBYTE * ppConnectionData, // connection-specific data returned from UI
DWORD * lpdwSizeOfConnectionData, // size of connection-specific data returned from UI
PBYTE * ppUserData, // user-specific data returned from UI
DWORD * lpdwSizeOfUserData, // size of user-specific data returned from UI
LPSTR szIdentity[UNLEN+DNLEN+2] // identity of user
);
If the interactive UI doesn't obtain any connection-specific data, the pointer that ppConnectionData points to should be set to NULL.
If the interactive UI doesn't obtain any user-specific data, the pointer that ppUserData points to should be set to NULL.
If the function succeeds, the return value is NO_ERROR. Check the ppConnectionData, lpdwSizeOfConnectionData, ppUserData and lpdwSizeOfUserData parameters to determine if the function returned data from the interactive UI.
If the function wasn't able to allocate memory for the connection-specific or user-specific data, the return value should be ERROR_NOT_ENOUGH_MEMORY.
If the function fails in some other way, the return value should be an appropriate error code from winerror.h, raserror.h, or mprerror.h.
The DLL that implements the RasEapInvokeInteractiveUI and RasEapFreeInteractiveUIData functions may support more than one authentication protocol. The dwEapTypeId parameter specifies which authentication protocol to invoke the interactive UI for.
A pointer to the data returned from the interactive UI is passed back to the authentication protocol in the PPP_EAP_INPUT structure. The PPP_EAP_INPUT structure is passed as a parameter to the RasEapMakeMessage function.
RasEapFreeInteractiveUIData, RasEapInvokeConfigUI, RasEapMakeMessage, PPP_EAP_INPUT, PPP_EAP_OUTPUT