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
59typedef 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;
145typedef struct _RAS_AUTH_ATTRIBUTE
147 RAS_AUTH_ATTRIBUTE_TYPE raaType;
151}RAS_AUTH_ATTRIBUTE, *PRAS_AUTH_ATTRIBUTE;
153typedef struct _PPP_EAP_PACKET
159}PPP_EAP_PACKET, *PPPP_EAP_PACKET;
161#define PPP_EAP_PACKET_HDR_LEN (sizeof(PPP_EAP_PACKET) - 1)
163typedef struct _PPP_EAP_INPUT
171 RAS_AUTH_ATTRIBUTE* pUserAttributes;
172 BOOL fAuthenticationComplete;
173 DWORD dwAuthResultCode;
175 BOOL fSuccessPacketReceived;
176 BOOL fDataReceivedFromInteractiveUI;
178 DWORD dwSizeOfDataFromInteractiveUI;
180 DWORD dwSizeOfConnectionData;
182 DWORD dwSizeOfUserData;
184}PPP_EAP_INPUT, *PPPP_EAP_INPUT;
186typedef enum _PPP_EAP_ACTION
189 EAPACTION_Authenticate,
191 EAPACTION_SendAndDone,
193 EAPACTION_SendWithTimeout,
194 EAPACTION_SendWithTimeoutInteractive,
195 EAPACTION_IndicateTLV,
196 EAPACTION_IndicateIdentity
199typedef struct _PPP_EAP_OUTPUT
203 DWORD dwAuthResultCode;
204 OPTIONAL RAS_AUTH_ATTRIBUTE* pUserAttributes;
205 BOOL fInvokeInteractiveUI;
207 DWORD dwSizeOfUIContextData;
208 BOOL fSaveConnectionData;
210 DWORD dwSizeOfConnectionData;
213 DWORD dwSizeOfUserData;
214}PPP_EAP_OUTPUT, *PPPP_EAP_OUTPUT;
216typedef struct _PPP_EAP_INFO
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;
227RasEapGetInfo(
IN DWORD dwEapTypeId,
228 OUT PPP_EAP_INFO* pEapInfo);
234RasEapInvokeInteractiveUI(
IN DWORD dwEapTypeId,
237 IN DWORD dwSizeOfUIContextData,
238 OUT BYTE** ppDataFromInteractiveUI,
239 OUT DWORD* pdwSizeOfDataFromInteractiveUI);
242RasEapInvokeConfigUI(
IN DWORD dwEapTypeId,
245 IN BYTE* pConnectionDataIn,
246 IN DWORD dwSizeOfConnectionDataIn,
247 OUT BYTE** ppConnectionDataOut,
248 OUT DWORD* pdwSizeOfConnectionDataOut);
251RasEapGetIdentity(
IN DWORD dwEapTypeId,
256 IN BYTE* pConnectionDataIn,
257 IN DWORD dwSizeOfConnectionDataIn,
static DWORD DWORD * dwLength
_In_ ULONG _In_ ULONG _In_ ULONG Length
PULONG MinorVersion OPTIONAL
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags