EAP_PEER_METHOD_ROUTINES (Compact 2013)
3/26/2014
This structure contains a set of function pointers to the EAPHost Peer Method API.
Syntax
typedef struct {
DWORD dwVersion;
EAP_TYPE* pEapType;
DWORD (APIENTRY * EapPeerInitialize) (
[out] EAP_ERROR* pEapError
);
DWORD (APIENTRY * EapPeerBeginSession) (
[in] DWORD dwFlags,
[in] EAP_METHOD_TYPE eapType,
[in] EapAttributes* pAttributeArray,
[in] HANDLE hTokenImpersonateUser,
[in] DWORD dwSizeOfConnectionData,
[in] BYTE* pConnectionData,
[in] DWORD dwSizeOfUserData,
[in] BYTE* pUserData,
[in] DWORD dwMaxSendPacketSize,
[out] EAP_SESSION_HANDLE* pSessionHandle,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerGetIdentity) (
[in] EAP_SESSION_HANDLE sessionHandle,
[out] BOOL* pfInvokeUI,
[out] LPWSTR* ppwszIdentity,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerSetCredentials) (
[in] EAP_SESSION_HANDLE sessionHandle,
[in] CHAR pwszIdentity,
[in] CHAR pwszPassword,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerProcessRequestPacket) (
[in] EAP_SESSION_HANDLE sessionHandle,
[in] DWORD cbReceivePacket,
[in] EapPacket* pReceivePacket,
[out] EapPeerMethodOutput* pEapOutput,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerGetResponsePacket) (
[in] EAP_SESSION_HANDLE sessionHandle,
[in, out] DWORD* pcbSendPacket,
[out] EapPacket* pSendPacket,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerGetResult) (
[in] EAP_SESSION_HANDLE sessionHandle,
[in] EapPeerMethodResultReason reason,
[out] EapPeerMethodResult* ppResult,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerGetUIContext) (
[in] EAP_SESSION_HANDLE sessionHandle,
[out] DWORD* pdwSizeOfUIContextData,
[out] BYTE** ppUIContextData,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerSetUIContext) (
[in] EAP_SESSION_HANDLE sessionHandle,
[in] DWORD dwSizeOfUIContextData,
[in] BYTE* pUIContextData,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerGetResponseAttributes) (
[in] EAP_SESSION_HANDLE sessionHandle,
[out] EapAttributes* pAttribs,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerSetResponseAttributes) (
[in] EAP_SESSION_HANDLE sessionHandle,
[in] EapAttributes* pAttribs,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerEndSession) (
[in] EAP_SESSION_HANDLE sessionHandle,
[out, optional] EAP_ERROR** ppEapError
);
DWORD (APIENTRY * EapPeerShutdown) (
[out, optional] EAP_ERROR** ppEapError
);
} EAP_PEER_METHOD_ROUTINES;
Members
- dwVersion
The version of this structure.
- pEapType
A pointer to an EAP_TYPE structure that contains the vendor information on the implementer of the APIs pointed to by the members of this structure.
EapPeerInitialize
A function pointer for EapPeerInitialize.- pEapError
A pointer to the EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by passing a pointer to EapPeerFreeErrorMemory.
- pEapError
EapPeerBeginSession
A function pointer for EapPeerBeginSession.- dwFlags
Specifies a set of flags that describe the behavior of the new EAP authentication session. See EapPeerBeginSession for possible value(s).
- eapType
A pointer to an EAP_METHOD_TYPE structure that contains the ID for the EAP method and specific vendor information.
- pAttributeArray
Pointer to an EAP_ATTRIBUTES array structure that specifies the EAP attributes of the entity to authenticate.
- hTokenImpersonateUser
Specifies a handle to the user impersonation token to use in this session.
- dwSizeOfConnectionData
Specifies the size, in bytes, of the connection data buffer provided in pConnectionData.
- pConnectionData
Pointer to a byte buffer that contains the opaque configuration data BLOB.
- dwSizeOfUserData
Specifies the size in bytes of the user data buffer provided in pUserData.
- pUserData
Pointer to a byte buffer that contains the opaque user data BLOB.
- dwMaxSendPacketSize
Specifies the maximum size in bytes of an EAP packet sent during the session. If the method has to send a packet larger than the maximum size, the method must accommodate fragmentation and reassembly.
- pSessionHandle
Pointer to a EAP_SESSION_HANDLE structure that contains the unique ID for the new EAP authentication session on EAPHost
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised by EAPHost during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- dwFlags
EapPeerGetIdentity
A function pointer for EapPeerGetIdentity.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession
- pfInvokeUI
Returns true if the user identity and user data blob are not returned successfully, and the method seeks to collect the information from the user through the user interface dialog.
- ppwszIdentity
A pointer to the returned user identity. The pointer will be included in the identity response packet and returned to the server.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- sessionHandle
EapPeerSetCredentials
A function pointer for EapPeerSetCredentials.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession
- pwszIdentity
Pointer that specifies the user identity for which to set the credentials. This user identity string is obtained by calling the EapPeerGetIdentity function.
- pwszPassword
Pointer that contains the clear text password for the user identity.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- sessionHandle
EapPeerProcessRequestPacket
A function pointer for EapPeerProcessRequestPacket.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- cbReceivePacket
The size in bytes of the request packet specified in pReceivePacket.
- pReceivePacket
Pointer to an EapPacket structure that contains the request packet to process.
- pEapOutput
Pointer to an EapPeerMethodOutput structure that contains the output of the packet process operation.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- sessionHandle
EapPeerGetResponsePacket
A function pointer for EapPeerGetResponsePacket.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- pcbSendPacket
Pointer to a value that contains the size in bytes of the buffer allocated for the response packet. On return, this parameter receives a pointer to the actual size in bytes of pSendPacket.
- pSendPacket
Pointer to an EapPacket structure that contains the response packet.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- sessionHandle
EapPeerGetResult
A function pointer for EapPeerGetResult.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- reason
Enumeration value that specifies the reason code for the authentication result returned in ppResult.
- ppResult
Pointer to a EapHostPeerMethodResult structure that contains the authentication results.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by passing a pointer to EapPeerFreeErrorMemory.
- sessionHandle
EapPeerGetUIContext
A function pointer for EapPeerGetUIContext.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- pdwSizeOfUIContextData
Pointer to a value that specifies the size of the user interface context data byte buffer returned in ppUIContextData.
- ppUIContextData
Pointer to an address that contains a byte buffer with the supplicant user interface context data from EAPHost.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by passing a pointer to the error data to EapPeerFreeErrorMemory.
- sessionHandle
EapPeerSetUIContext
A function pointer for EapPeerSetUIContext.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- dwSizeOfUIContextData
Pointer to a value that specifies the size of the UI context data byte buffer provided in pUIContextData.
- pUIContextData
Pointer to an address that contains a byte buffer with the new supplicant UI context data to set on EAPHost.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by passing a pointer to EapPeerFreeErrorMemory.
- sessionHandle
EapPeerGetResponseAttributes
A function pointer for EapPeerGetResponseAttributes.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- pAttribs
Receives a pointer to an EAP_ATTRIBUTES structure that contains an array of EAP authentication response attributes for the supplicant.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- sessionHandle
EapPeerSetResponseAttributes
A function pointer for EapPeerSetResponseAttributes.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- pAttribs
Pointer to an EAP_ATTRIBUTES structure that contains an array of new EAP authentication response attributes to set for the supplicant on EAPHost.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- sessionHandle
EapPeerEndSession
A function pointer for EapPeerEndSession.- sessionHandle
EAP_SESSION_HANDLE value that contains the specific handle for the EAP authentication session to close on EAPHost. This handle is obtained by a previous call to EapPeerBeginSession.
- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by calling EapPeerFreeErrorMemory.
- sessionHandle
EapPeerShutdown
A function pointer for EapPeerShutdown.- ppEapError
Pointer to the address of an EAP_ERROR structure that contains any errors raised during the execution of this function call. After using the error data, this memory must be freed by passing a pointer to EapPeerFreeErrorMemory.
- ppEapError
Remarks
Each EAP method DLL must implement the following APIs:
- EapPeerInitialize
- EapPeerBeginSession
- EapPeerGetIdentity
- EapPeerSetCredentials
- EapPeerProcessRequestPacket
- EapPeerGetResponsePacket
- EapPeerGetResult
- EapPeerGetUIContext
- EapPeerSetUIContext
- EapPeerGetResponseAttributes
- EapPeerSetResponseAttributes
- EapPeerEndSession
- EapPeerShutdown
These APIs correspond to calls made by a supplicant, and serve as a proxy between the supplicant's API calls and the public APIs exposed on the EAP method DLL. Therefore, when a supplicant makes a call to a peer-based EAPHost to establish an authentication session or to perform an operation during that session, EAPHost calls the corresponding implemented function on the EAP method DLL with the parameter data that was provided. The EAP method functions are managed by pointers to their respective entry points.
The other functions in the EAP Peer Method API set are called by a peer-based EAPHost without a corresponding supplicant call, and are used for connection validation or user interface raising operations.