10 #define RAS_EAP_REGISTRY_LOCATION TEXT("SYSTEM\\CurrentControlSet\\Services\\Rasman\\PPP\\EAP")
12 #define RAS_EAP_VALUENAME_PATH TEXT("Path")
13 #define RAS_EAP_VALUENAME_CONFIGUI TEXT("ConfigUIPath")
14 #define RAS_EAP_VALUENAME_INTERACTIVEUI TEXT("InteractiveUIPath")
15 #define RAS_EAP_VALUENAME_IDENTITY TEXT("IdentityPath")
16 #define RAS_EAP_VALUENAME_FRIENDLY_NAME TEXT("FriendlyName")
17 #define RAS_EAP_VALUENAME_DEFAULT_DATA TEXT("ConfigData")
18 #define RAS_EAP_VALUENAME_REQUIRE_CONFIGUI TEXT("RequireConfigUI")
19 #define RAS_EAP_VALUENAME_ENCRYPTION TEXT("MPPEEncryptionSupported")
20 #define RAS_EAP_VALUENAME_INVOKE_NAMEDLG TEXT("InvokeUsernameDialog")
21 #define RAS_EAP_VALUENAME_INVOKE_PWDDLG TEXT("InvokePasswordDialog")
22 #define RAS_EAP_VALUENAME_CONFIG_CLSID TEXT("ConfigCLSID")
23 #define RAS_EAP_VALUENAME_STANDALONE_SUPPORTED TEXT("StandaloneSupported")
24 #define RAS_EAP_VALUENAME_ROLES_SUPPORTED TEXT("RolesSupported")
25 #define RAS_EAP_VALUENAME_PER_POLICY_CONFIG TEXT("PerPolicyConfig")
27 #define RAS_EAP_ROLE_AUTHENTICATOR 0x00000001
28 #define RAS_EAP_ROLE_AUTHENTICATEE 0x00000002
30 #define RAS_EAP_ROLE_EXCLUDE_IN_EAP 0x00000004
31 #define RAS_EAP_ROLE_EXCLUDE_IN_PEAP 0x00000008
32 #define RAS_EAP_ROLE_EXCLUDE_IN_VPN 0x00000010
34 #define raatARAPChallenge 33
35 #define raatARAPOldPassword 19
36 #define raatARAPNewPassword 20
37 #define raatARAPPasswordChangeReason 21
39 #define EAPCODE_Request 1
40 #define EAPCODE_Response 2
41 #define EAPCODE_Success 3
42 #define EAPCODE_Failure 4
46 #define RAS_EAP_FLAG_ROUTER 0x00000001
47 #define RAS_EAP_FLAG_NON_INTERACTIVE 0x00000002
48 #define RAS_EAP_FLAG_LOGON 0x00000004
49 #define RAS_EAP_FLAG_PREVIEW 0x00000008
50 #define RAS_EAP_FLAG_FIRST_LINK 0x00000010
51 #define RAS_EAP_FLAG_MACHINE_AUTH 0x00000020
52 #define RAS_EAP_FLAG_GUEST_ACCESS 0x00000040
53 #define RAS_EAP_FLAG_8021X_AUTH 0x00000080
54 #define RAS_EAP_FLAG_HOSTED_IN_PEAP 0x00000100
55 #define RAS_EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200
56 #define RAS_EAP_FLAG_PEAP_UPFRONT 0x00000400
57 #define RAS_EAP_FLAG_ALTERNATIVE_USER_DB 0x00000800
59 typedef enum _RAS_AUTH_ATTRIBUTE_TYPE_
71 raatFramedRouting
= 10,
74 raatFramedCompression
,
90 raatTerminationAction
,
91 raatCalledStationId
= 30,
98 raatFramedAppleTalkLink
,
99 raatFramedAppleTalkNetwork
,
100 raatFramedAppleTalkZone
,
101 raatAcctStatusType
= 40,
104 raatAcctOutputOctets
,
108 raatAcctInputPackets
,
109 raatAcctOutputPackets
,
110 raatAcctTerminateCause
,
111 raatAcctMultiSessionId
= 50,
113 raatAcctEventTimeStamp
= 55,
114 raatMD5CHAPChallenge
= 60,
119 raatTunnelMediumType
,
120 raatTunnelClientEndpoint
,
121 raatTunnelServerEndpoint
,
122 raatARAPPassword
= 70,
126 raatARAPSecurityData
,
130 raatConfigurationToken
,
133 raatARAPChallengeResponse
= 84,
134 raatAcctInterimInterval
= 85,
135 raatARAPGuestLogon
= 8096,
137 raatEAPConfiguration
,
138 raatPEAPEmbeddedEAPTypeId
,
139 raatPEAPFastRoamedSession
,
141 raatReserved
= 0xFFFFFFFF
143 }RAS_AUTH_ATTRIBUTE_TYPE
;
145 typedef struct _RAS_AUTH_ATTRIBUTE
147 RAS_AUTH_ATTRIBUTE_TYPE raaType
;
151 }RAS_AUTH_ATTRIBUTE
, *PRAS_AUTH_ATTRIBUTE
;
153 typedef struct _PPP_EAP_PACKET
159 }PPP_EAP_PACKET
, *PPPP_EAP_PACKET
;
161 #define PPP_EAP_PACKET_HDR_LEN (sizeof(PPP_EAP_PACKET) - 1)
163 typedef struct _PPP_EAP_INPUT
171 RAS_AUTH_ATTRIBUTE
* pUserAttributes
;
172 BOOL fAuthenticationComplete
;
173 DWORD dwAuthResultCode
;
174 OPTIONAL HANDLE hTokenImpersonateUser
;
175 BOOL fSuccessPacketReceived
;
176 BOOL fDataReceivedFromInteractiveUI
;
177 OPTIONAL PBYTE pDataFromInteractiveUI
;
178 DWORD dwSizeOfDataFromInteractiveUI
;
179 OPTIONAL PBYTE pConnectionData
;
180 DWORD dwSizeOfConnectionData
;
181 OPTIONAL PBYTE pUserData
;
182 DWORD dwSizeOfUserData
;
184 }PPP_EAP_INPUT
, *PPPP_EAP_INPUT
;
186 typedef enum _PPP_EAP_ACTION
189 EAPACTION_Authenticate
,
191 EAPACTION_SendAndDone
,
193 EAPACTION_SendWithTimeout
,
194 EAPACTION_SendWithTimeoutInteractive
,
195 EAPACTION_IndicateTLV
,
196 EAPACTION_IndicateIdentity
199 typedef struct _PPP_EAP_OUTPUT
202 PPP_EAP_ACTION Action
;
203 DWORD dwAuthResultCode
;
204 OPTIONAL RAS_AUTH_ATTRIBUTE
* pUserAttributes
;
205 BOOL fInvokeInteractiveUI
;
206 OPTIONAL PBYTE pUIContextData
;
207 DWORD dwSizeOfUIContextData
;
208 BOOL fSaveConnectionData
;
209 OPTIONAL PBYTE pConnectionData
;
210 DWORD dwSizeOfConnectionData
;
212 OPTIONAL PBYTE pUserData
;
213 DWORD dwSizeOfUserData
;
214 }PPP_EAP_OUTPUT
, *PPPP_EAP_OUTPUT
;
216 typedef struct _PPP_EAP_INFO
220 DWORD (APIENTRY
*RasEapInitialize
)(IN BOOL fInitialize
);
221 DWORD (APIENTRY
*RasEapBegin
)(OUT VOID
** ppWorkBuffer
, IN PPP_EAP_INPUT
* pPppEapInput
);
222 DWORD (APIENTRY
*RasEapEnd
)(IN VOID
* pWorkBuffer
);
223 DWORD (APIENTRY
*RasEapMakeMessage
)(IN VOID
* pWorkBuf
, IN PPP_EAP_PACKET
* pReceivePacket
, OUT PPP_EAP_PACKET
* pSendPacket
, IN DWORD cbSendPacket
, OUT PPP_EAP_OUTPUT
* pEapOutput
, IN PPP_EAP_INPUT
* pEapInput
);
224 }PPP_EAP_INFO
, *PPPP_EAP_INFO
;
227 RasEapGetInfo(IN DWORD dwEapTypeId
,
228 OUT PPP_EAP_INFO
* pEapInfo
);
231 RasEapFreeMemory(IN BYTE
* pMemory
);
234 RasEapInvokeInteractiveUI(IN DWORD dwEapTypeId
,
236 IN BYTE
* pUIContextData
,
237 IN DWORD dwSizeOfUIContextData
,
238 OUT BYTE
** ppDataFromInteractiveUI
,
239 OUT DWORD
* pdwSizeOfDataFromInteractiveUI
);
242 RasEapInvokeConfigUI(IN DWORD dwEapTypeId
,
245 IN BYTE
* pConnectionDataIn
,
246 IN DWORD dwSizeOfConnectionDataIn
,
247 OUT BYTE
** ppConnectionDataOut
,
248 OUT DWORD
* pdwSizeOfConnectionDataOut
);
251 RasEapGetIdentity(IN DWORD dwEapTypeId
,
254 IN
const WCHAR
* pwszPhonebook
,
255 IN
const WCHAR
* pwszEntry
,
256 IN BYTE
* pConnectionDataIn
,
257 IN DWORD dwSizeOfConnectionDataIn
,
258 IN BYTE
* pUserDataIn
,
259 IN DWORD dwSizeOfUserDataIn
,
260 OUT BYTE
** ppUserDataOut
,
261 OUT DWORD
* pdwSizeOfUserDataOut
,
262 OUT WCHAR
** ppwszIdentity
265 #endif /* WINVER >= 0x0500 */
271 #endif /* _RASEAPIF_ */