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 11 extern "C" { 12 #endif 13 14 typedef 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 69 VOID WINAPI EapMethodAuthenticatorFreeMemory( 70 void *pUIContextData 71 ); 72 73 DWORD WINAPI EapMethodAuthenticatorInitialize( 74 EAP_METHOD_TYPE *pEapType, 75 EAP_ERROR **ppEapError 76 ); 77 78 VOID WINAPI EapPeerFreeErrorMemory( 79 EAP_ERROR *ppEapError 80 ); 81 82 DWORD WINAPI EapMethodAuthenticatorGetResult( 83 EAP_SESSION_HANDLE sessionHandle, 84 EAP_METHOD_AUTHENTICATOR_RESULT *pResult, 85 EAP_ERROR **ppEapError 86 ); 87 88 DWORD 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 99 DWORD WINAPI EapMethodAuthenticatorFreeErrorMemory( 100 EAP_ERROR *ppEapError 101 ); 102 103 DWORD EapMethodAuthenticatorEndSession( 104 EAP_SESSION_HANDLE sessionHandle, 105 EAP_ERROR **ppEapError 106 ); 107 108 DWORD EapMethodAuthenticatorGetAttributes( 109 EAP_SESSION_HANDLE sessionHandle, 110 EapAttributes *pAttribs, 111 EAP_ERROR **ppEapError 112 ); 113 114 DWORD EapMethodAuthenticatorGetInfo( 115 EAP_METHOD_TYPE *pEapType, 116 EAP_AUTHENTICATOR_METHOD_ROUTINES *pEapInfo, 117 EAP_ERROR **ppEapError 118 ); 119 120 DWORD EapMethodAuthenticatorGetResult( 121 EAP_SESSION_HANDLE sessionHandle, 122 EAP_METHOD_AUTHENTICATOR_RESULT *pResult, 123 EAP_ERROR **ppEapError 124 ); 125 126 DWORD 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 138 DWORD 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 146 DWORD 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 155 DWORD WINAPI EapMethodAuthenticatorSetAttributes( 156 EAP_SESSION_HANDLE sessionHandle, 157 const EapAttributes *pAttribs, 158 EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION *pEapOutput, 159 EAP_ERROR **ppEapError 160 ); 161 162 DWORD WINAPI EapMethodAuthenticatorShutdown( 163 EAP_METHOD_TYPE *peapType, 164 EAP_ERROR **ppEapError 165 ); 166 167 DWORD 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*/ 180