[This is preliminary documentation and subject to change.]
The PPP_EAP_INPUT structure is used in the interaction between the RAS Connection Manager Service PPP implementation and the EAP to provide user information, and to facilitate the use authentication providers such as Microsoft® Windows Windows NT® domain authentication or Radius.
typedef struct _PPP_EAP_INPUT {
DWORD dwSizeInBytes // size of this structure
DWORD fFlags // specifies whether caller
// is a router or RAS client
HANDLE hPort; // passed to backend authenticator
BOOL fAuthenticator; // act as authenticator or authenticatee
CHAR * pszIdentity; // users's identity
CHAR * pszPassword; // user's account password.
RAS_AUTH_ATTRIBUTE * pUserAttributes;
DWORD ( * RasAuthenticateClient ) (
HANDLE hPort,
RAS_AUTH_ATTRIBUTE * pInAttributes
);
BOOL fAuthenticationComplete;
DWORD dwAuthError;
DWORD dwAuthResultCode;
RAS_AUTH_ATTRIBUTE * pAttributesFromAuthenticator;
HANDLE hTokenImpersonateUser // handle to impersonate
// user being authenticated
DWORD fSuccessPacketReceived // true if success indicated
// by NCP packet
DWORD fDataReceivedFromInteractiveUI // true if user exits
// from interactive UI
PBYTE pInteractiveConnectionData // pointer to connection-
// specific data from the
// interactive UI
DWORD dwSizeOfInteractiveConnectionData // size of connection
// specific data from
// the interactive UI
PBYTE pInteractiveUserData // pointer to user-specific
// data from interactive UI
DWORD dwSizeOfInteractiveUserData // size of user-specific
// data from interactive UI
PBYTE pConfigConnectionData // pointer to connection-
// specific data from
// config UI
DWORD dwSizeOfConfigConnectionData // size of connection-
// specific data from
// config UI
PBYTE pConfigUserData // pointer to user-
// specific data from
// config UI
DWORD dwSizeOfConfigUserData // size of user-specific
// data from config UI
} PPP_EAP_INPUT, * PPPP_EAP_INPUT;
RAS_EAP_FLAG_ROUTER
Otherwise, this parameter should be zero.
This member will be valid only if fAuthenticationComplete is TRUE. The memory occupied by this array is not owned by the authentication protocol, and should be used only for read. Ignore this field if the authentication protocol is not using an authentication provider.
If non-NULL, the authentication protocol should make a copy of the data in its own memory space. RAS will free the memory occupied by this data on return from the call in which the PPP_EAP_INPUT structure was passed. To free the memory RAS will call the RasEapFreeInteractiveUIData function.
If non-NULL, the authentication protocol should make a copy of the data in its own memory space. RAS will free the memory occupied by this data on return from the call in which the PPP_EAP_INPUT structure was passed. To free the memory RAS will call the RasEapFreeInteractiveUIData function.
The authentication protocol should make a copy of this data in its own memory space. RAS will free the memory occupied by this data on return from the call in which the PPP_EAP_INPUT structure was passed. To free the memory RAS will call the RasEapFreeConfigUIData function.
If the authentication protocol's configuration UI did not return any data, this member will be NULL.
The authentication protocol should make a copy of this data in its own memory space. RAS will free the memory occupied by this data on return from the call in which the PPP_EAP_INPUT structure was passed. To free the memory RAS will call the RasEapFreeConfigUIData function.
If the authentication protocol's configuration UI did not return any data, this member will be NULL.
The pszIdentity and pszPassword members of the PPP_EAP_INPUT structure are used by the RasEapBegin function to obtain user information, and are available only if the fAuthenticator member is FALSE.
If the authentication protocol is using an authentication provider, such as Radius or Windows NT domain authentication, the following members
pUserAttributes
RasAuthenticateClient
fAuthenticationComplete
dwAuthError
dwAuthResultCode
pAttributesFromAuthenticator
are used to interface with the authentication provider. Note that the array of RAS_AUTH_ATTRIBUTE structures is passed only if fAuthenticator is TRUE. This array contains current session information such as port identifier or local IP address.
Windows NT: Use version 5.0 or later.
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in raseapif.h.
RasEapBegin, RasEapFreeConfigUIData, RasEapFreeInteractiveUIData, RasEapMakeMessage, RAS_AUTH_ATTRIBUTE