/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_EAPMETHODAUTHENTICATORAPIS
#define _INC_EAPMETHODAUTHENTICATORAPIS
#if (_WIN32_WINNT >= 0x0600)
#include <eaptypes.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _EAP_AUTHENTICATOR_METHOD_ROUTINES {
DWORD dwSizeInBytes;
EAP_METHOD_TYPE *pEapType;
DWORD (APIENTRY *EapMethodAuthenticatorInitialize)(
EAP_METHOD_TYPE pEapType,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorBeginSession)(
DWORD dwFlags,
LPCWSTR pwszIdentity,
EapAttributes pAttributeArray,
DWORD dwSizeOfConnectionData,
BYTE pConnectionData,
DWORD dwMaxSendPacketSize,
EAP_SESSION_HANDLE pSessionHandle,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorUpdateInnerMethodParams)(
EAP_SESSION_HANDLE sessionHandle,
DWORD dwFlags,
WCHAR pwszIdentity,
EapAttributes pAttributeArray,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorReceivePacket)(
EAP_SESSION_HANDLE sessionHandle,
DWORD cbReceivePacket,
EapPacket pReceivePacket,
EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION pEapOutput,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorSendPacket)(
EAP_SESSION_HANDLE sessionHandle,
BYTE bPacketId,
DWORD pcbSendPacket,
EapPacket pSendPacket,
EAP_AUTHENTICATOR_SEND_TIMEOUT pTimeout,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorGetAttributes)(
EAP_SESSION_HANDLE sessionHandle,
EapAttributes pAttribs,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorSetAttributes)(
EAP_SESSION_HANDLE sessionHandle,
EapAttributes pAttribs,
EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION pEapOutput,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorGetResult)(
EAP_SESSION_HANDLE sessionHandle,
EAP_METHOD_AUTHENTICATOR_RESULT pResult,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorEndSession)(
EAP_SESSION_HANDLE sessionHandle,
EAP_ERROR ppEapError);
DWORD (APIENTRY *EapMethodAuthenticatorShutdown)(
EAP_METHOD_TYPE pEapType,
EAP_ERROR ppEapError);
} EAP_AUTHENTICATOR_METHOD_ROUTINES;
VOID WINAPI EapMethodAuthenticatorFreeMemory(
void *pUIContextData
);
DWORD WINAPI EapMethodAuthenticatorInitialize(
EAP_METHOD_TYPE *pEapType,
EAP_ERROR **ppEapError
);
VOID WINAPI EapPeerFreeErrorMemory(
EAP_ERROR *ppEapError
);
DWORD WINAPI EapMethodAuthenticatorGetResult(
EAP_SESSION_HANDLE sessionHandle,
EAP_METHOD_AUTHENTICATOR_RESULT *pResult,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapMethodAuthenticatorBeginSession(
DWORD dwFlags,
LPCWSTR pwszIdentity,
const EapAttributes *pAttributeArray,
DWORD dwSizeOfConnectionData,
const BYTE *pConnectionData,
DWORD dwMaxSendPacketSize,
EAP_SESSION_HANDLE *pSessionHandle,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapMethodAuthenticatorFreeErrorMemory(
EAP_ERROR *ppEapError
);
DWORD EapMethodAuthenticatorEndSession(
EAP_SESSION_HANDLE sessionHandle,
EAP_ERROR **ppEapError
);
DWORD EapMethodAuthenticatorGetAttributes(
EAP_SESSION_HANDLE sessionHandle,
EapAttributes *pAttribs,
EAP_ERROR **ppEapError
);
DWORD EapMethodAuthenticatorGetInfo(
EAP_METHOD_TYPE *pEapType,
EAP_AUTHENTICATOR_METHOD_ROUTINES *pEapInfo,
EAP_ERROR **ppEapError
);
DWORD EapMethodAuthenticatorGetResult(
EAP_SESSION_HANDLE sessionHandle,
EAP_METHOD_AUTHENTICATOR_RESULT *pResult,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapMethodAuthenticatorInvokeConfigUI(
EAP_METHOD_TYPE *pEapMethodType,
HWND hwndParent,
DWORD dwFlags,
LPCWSTR pwszMachineName,
DWORD dwSizeOfConfigIn,
BYTE *pConfigIn,
DWORD *pdwSizeOfConfigOut,
BYTE **ppConfigOut,
EAP_ERROR **pEapError
);
DWORD WINAPI EapMethodAuthenticatorReceivePacket(
EAP_SESSION_HANDLE sessionHandle,
DWORD cbReceivePacket,
const EapPacket *pReceivePacket,
EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION *pEapOutput,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapMethodAuthenticatorSendPacket(
EAP_SESSION_HANDLE sessionHandle,
BYTE bPacketId,
DWORD *pcbSendPacket,
EapPacket *pSendPacket,
EAP_AUTHENTICATOR_SEND_TIMEOUT *pTimeout,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapMethodAuthenticatorSetAttributes(
EAP_SESSION_HANDLE sessionHandle,
const EapAttributes *pAttribs,
EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION *pEapOutput,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapMethodAuthenticatorShutdown(
EAP_METHOD_TYPE *peapType,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapMethodAuthenticatorUpdateInnerMethodParams(
EAP_SESSION_HANDLE sessionHandle,
DWORD dwFlags,
const WCHAR *pwszIdentity,
const EapAttributes *pAttributeArray,
EAP_ERROR **ppEapError
);
#ifdef __cplusplus
}
#endif
#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif /*_INC_EAPMETHODAUTHENTICATORAPIS*/