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_EAPPAPIS
7 #define _INC_EAPPAPIS
8 #if (_WIN32_WINNT >= 0x0600)
9 #include <eaptypes.h>
10 #include <eaphostpeertypes.h>
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 DWORD APIENTRY EapHostPeerGetResult(
16   EAP_SESSIONID sessionHandle,
17   EapHostPeerMethodResultReason reason,
18   EapHostPeerMethodResult *ppResult,
19   EAP_ERROR **ppEapError
20 );
21 
22 DWORD WINAPI EapHostPeerProcessReceivedPacket(
23   EAP_SESSIONID sessionHandle,
24   DWORD cbReceivePacket,
25   const BYTE *pReceivePacket,
26   EapHostPeerResponseAction *pEapOutput,
27   EAP_ERROR **ppEapError
28 );
29 
30 VOID APIENTRY EapHostPeerFreeEapError(
31   EAP_ERROR *ppEapError
32 );
33 
34 DWORD APIENTRY EapHostPeerClearConnection(
35   GUID *pConnectionId,
36   EAP_ERROR **ppEapError
37 );
38 
39 DWORD APIENTRY EapHostPeerEndSession(
40   EAP_SESSIONID sessionHandle,
41   EAP_ERROR **ppEapError
42 );
43 
44 DWORD APIENTRY EapHostPeerGetAuthStatus(
45   EAP_SESSIONID sessionHandle,
46   EapHostPeerAuthParams authParam,
47   DWORD *pcbAuthData,
48   BYTE **ppAuthData,
49   EAP_ERROR **ppEapError
50 );
51 
52 DWORD APIENTRY EapHostPeerGetResponseAttributes(
53   EAP_SESSIONID sessionHandle,
54   EapAttributes *pAttribs,
55   EAP_ERROR **ppEapError
56 );
57 
58 DWORD WINAPI EapHostPeerGetSendPacket(
59   EAP_SESSIONID sessionHandle,
60   DWORD *pcbSendPacket,
61   BYTE **ppSendPacket,
62   EAP_ERROR **ppEapError
63 );
64 
65 DWORD APIENTRY EapHostPeerGetUIContext(
66   EAP_SESSIONID sessionHandle,
67   DWORD *pdwSizeOfUIContextData,
68   BYTE **ppUIContextData,
69   EAP_ERROR **ppEapError
70 );
71 
72 DWORD APIENTRY EapHostPeerSetResponseAttributes(
73   EAP_SESSIONID sessionHandle,
74   const EapAttributes *pAttribs,
75   EapHostPeerResponseAction *pEapOutput,
76   EAP_ERROR **ppEapError
77 );
78 
79 DWORD APIENTRY EapHostPeerSetUIContext(
80   EAP_SESSIONID sessionHandle,
81   DWORD dwSizeOfUIContextData,
82   const BYTE *pUIContextData,
83   EapHostPeerResponseAction *pEapOutput,
84   EAP_ERROR **ppEapError
85 );
86 
87 typedef VOID ( CALLBACK *NotificationHandler )(
88   GUID connectionId,
89   VOID *pContextData
90 );
91 
92 DWORD APIENTRY EapHostPeerBeginSession(
93   DWORD dwFlags,
94   EAP_METHOD_TYPE eapType,
95   const EapAttributes *pAttributeArray,
96   HANDLE hTokenImpersonateUser,
97   DWORD dwSizeOfConnectionData,
98   const BYTE *pConnectionData,
99   DWORD dwSizeOfUserData,
100   const BYTE *pUserData,
101   DWORD dwMaxSendPacketSize,
102   const GUID *pConnectionId,
103   NotificationHandler func,
104   VOID *pContextData,
105   EAP_SESSIONID *pSessionId,
106   EAP_ERROR **ppEapError
107 );
108 
109 VOID WINAPI  EapHostPeerFreeRuntimeMemory(
110   BYTE *pData
111 );
112 
113 DWORD WINAPI EapHostPeerGetIdentity(
114   DWORD dwVersion,
115   DWORD dwFlags,
116   EAP_METHOD_TYPE eapMethodType,
117   DWORD dwSizeofConnectionData,
118   const BYTE *pConnectionData,
119   DWORD dwSizeofUserData,
120   const  BYTE *pUserData,
121   HANDLE hTokenImpersonateUser,
122   WINBOOL *pfInvokeUI,
123   DWORD *pdwSizeofUserDataOut,
124   BYTE **ppUserDataOut,
125   LPWSTR *ppwszIdentity,
126   EAP_ERROR **ppEapError,
127   BYTE **ppvReserved
128 );
129 
130 DWORD WINAPI EapHostPeerInitialize(void);
131 void WINAPI EapHostPeerUninitialize(void);
132 
133 #ifdef __cplusplus
134 }
135 #endif
136 #endif /*(_WIN32_WINNT >= 0x0600)*/
137 #endif /*_INC_EAPPAPIS*/
138