master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _INC_EAPMETHODAUTHENTICATORAPIS
  7#define _INC_EAPMETHODAUTHENTICATORAPIS
  8#if (_WIN32_WINNT >= 0x0600)
  9#include <eaptypes.h>
 10#ifdef __cplusplus
 11extern "C" {
 12#endif
 13
 14typedef struct _EAP_AUTHENTICATOR_METHOD_ROUTINES {
 15  DWORD           dwSizeInBytes;
 16  EAP_METHOD_TYPE *pEapType;
 17  DWORD (APIENTRY *EapMethodAuthenticatorInitialize)(
 18      EAP_METHOD_TYPE pEapType, 
 19      EAP_ERROR ppEapError);
 20  DWORD (APIENTRY *EapMethodAuthenticatorBeginSession)(
 21      DWORD dwFlags, 
 22      LPCWSTR pwszIdentity, 
 23      EapAttributes pAttributeArray, 
 24      DWORD dwSizeOfConnectionData, 
 25      BYTE pConnectionData, 
 26      DWORD dwMaxSendPacketSize, 
 27      EAP_SESSION_HANDLE pSessionHandle, 
 28      EAP_ERROR ppEapError);
 29  DWORD (APIENTRY *EapMethodAuthenticatorUpdateInnerMethodParams)(
 30      EAP_SESSION_HANDLE sessionHandle, 
 31      DWORD dwFlags, 
 32      WCHAR pwszIdentity, 
 33      EapAttributes pAttributeArray, 
 34      EAP_ERROR ppEapError);
 35  DWORD (APIENTRY *EapMethodAuthenticatorReceivePacket)(
 36      EAP_SESSION_HANDLE sessionHandle, 
 37      DWORD cbReceivePacket, 
 38      EapPacket pReceivePacket, 
 39      EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION pEapOutput, 
 40      EAP_ERROR ppEapError);
 41  DWORD (APIENTRY *EapMethodAuthenticatorSendPacket)(
 42      EAP_SESSION_HANDLE sessionHandle, 
 43      BYTE bPacketId, 
 44      DWORD pcbSendPacket, 
 45      EapPacket pSendPacket, 
 46      EAP_AUTHENTICATOR_SEND_TIMEOUT pTimeout, 
 47      EAP_ERROR ppEapError);
 48  DWORD (APIENTRY *EapMethodAuthenticatorGetAttributes)(
 49      EAP_SESSION_HANDLE sessionHandle, 
 50      EapAttributes pAttribs, 
 51      EAP_ERROR ppEapError);
 52  DWORD (APIENTRY *EapMethodAuthenticatorSetAttributes)(
 53      EAP_SESSION_HANDLE sessionHandle, 
 54      EapAttributes pAttribs, 
 55      EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION pEapOutput, 
 56      EAP_ERROR ppEapError);
 57  DWORD (APIENTRY *EapMethodAuthenticatorGetResult)(
 58      EAP_SESSION_HANDLE sessionHandle, 
 59      EAP_METHOD_AUTHENTICATOR_RESULT pResult, 
 60      EAP_ERROR ppEapError);
 61  DWORD (APIENTRY *EapMethodAuthenticatorEndSession)(
 62      EAP_SESSION_HANDLE sessionHandle, 
 63      EAP_ERROR ppEapError);
 64  DWORD (APIENTRY *EapMethodAuthenticatorShutdown)(
 65      EAP_METHOD_TYPE pEapType, 
 66      EAP_ERROR ppEapError);
 67} EAP_AUTHENTICATOR_METHOD_ROUTINES;
 68
 69VOID WINAPI EapMethodAuthenticatorFreeMemory(
 70  void *pUIContextData
 71);
 72
 73DWORD WINAPI EapMethodAuthenticatorInitialize(
 74  EAP_METHOD_TYPE *pEapType,
 75  EAP_ERROR **ppEapError
 76);
 77
 78VOID WINAPI EapPeerFreeErrorMemory(
 79  EAP_ERROR *ppEapError
 80);
 81
 82DWORD WINAPI EapMethodAuthenticatorGetResult(
 83  EAP_SESSION_HANDLE sessionHandle,
 84  EAP_METHOD_AUTHENTICATOR_RESULT *pResult,
 85  EAP_ERROR **ppEapError
 86);
 87
 88DWORD WINAPI EapMethodAuthenticatorBeginSession(
 89  DWORD dwFlags,
 90  LPCWSTR pwszIdentity,
 91  const EapAttributes *pAttributeArray,
 92  DWORD dwSizeOfConnectionData,
 93  const BYTE *pConnectionData,
 94  DWORD dwMaxSendPacketSize,
 95  EAP_SESSION_HANDLE *pSessionHandle,
 96  EAP_ERROR **ppEapError
 97);
 98
 99DWORD WINAPI EapMethodAuthenticatorFreeErrorMemory(
100  EAP_ERROR *ppEapError
101);
102
103DWORD EapMethodAuthenticatorEndSession(
104  EAP_SESSION_HANDLE sessionHandle,
105  EAP_ERROR **ppEapError
106);
107
108DWORD EapMethodAuthenticatorGetAttributes(
109  EAP_SESSION_HANDLE sessionHandle,
110  EapAttributes *pAttribs,
111  EAP_ERROR **ppEapError
112);
113
114DWORD EapMethodAuthenticatorGetInfo(
115  EAP_METHOD_TYPE *pEapType,
116  EAP_AUTHENTICATOR_METHOD_ROUTINES *pEapInfo,
117  EAP_ERROR **ppEapError
118);
119
120DWORD EapMethodAuthenticatorGetResult(
121  EAP_SESSION_HANDLE sessionHandle,
122  EAP_METHOD_AUTHENTICATOR_RESULT *pResult,
123  EAP_ERROR **ppEapError
124);
125
126DWORD WINAPI EapMethodAuthenticatorInvokeConfigUI(
127  EAP_METHOD_TYPE *pEapMethodType,
128  HWND hwndParent,
129  DWORD dwFlags,
130  LPCWSTR pwszMachineName,
131  DWORD dwSizeOfConfigIn,
132  BYTE *pConfigIn,
133  DWORD *pdwSizeOfConfigOut,
134  BYTE **ppConfigOut,
135  EAP_ERROR **pEapError
136);
137
138DWORD WINAPI EapMethodAuthenticatorReceivePacket(
139  EAP_SESSION_HANDLE sessionHandle,
140  DWORD cbReceivePacket,
141  const EapPacket *pReceivePacket,
142  EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION *pEapOutput,
143  EAP_ERROR **ppEapError
144);
145
146DWORD WINAPI EapMethodAuthenticatorSendPacket(
147  EAP_SESSION_HANDLE sessionHandle,
148  BYTE bPacketId,
149  DWORD *pcbSendPacket,
150  EapPacket *pSendPacket,
151  EAP_AUTHENTICATOR_SEND_TIMEOUT *pTimeout,
152  EAP_ERROR **ppEapError
153);
154
155DWORD WINAPI EapMethodAuthenticatorSetAttributes(
156  EAP_SESSION_HANDLE sessionHandle,
157  const EapAttributes *pAttribs,
158  EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION *pEapOutput,
159  EAP_ERROR **ppEapError
160);
161
162DWORD WINAPI EapMethodAuthenticatorShutdown(
163  EAP_METHOD_TYPE *peapType,
164  EAP_ERROR **ppEapError
165);
166
167DWORD WINAPI EapMethodAuthenticatorUpdateInnerMethodParams(
168  EAP_SESSION_HANDLE sessionHandle,
169  DWORD dwFlags,
170  const WCHAR *pwszIdentity,
171  const EapAttributes *pAttributeArray,
172  EAP_ERROR **ppEapError
173);
174
175#ifdef __cplusplus
176}
177#endif
178#endif /*(_WIN32_WINNT >= 0x0600)*/
179#endif /*_INC_EAPMETHODAUTHENTICATORAPIS*/