OSDN Git Service

Apply LICENSE to all files as appropriate.
[mingw/mingw-org-wsl.git] / include / mprapi.h
1 /**
2  * @file mprapi.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 /*
25  * mprapi.h - Routing and Remote Access Services
26  *
27  * THIS SOFTWARE IS NOT COPYRIGHTED
28  *
29  * This source code is offered for use in the public domain.  You may use,
30  * modify or distribute it freely.
31  *
32  * This code is distributed in the hope that it will be useful but
33  * WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
34  * DISCLAIMED.  This includes but is not limited to warranties of
35  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
36  *
37  */
38 #ifndef _MPRAPI_H
39 #define _MPRAPI_H
40 #pragma GCC system_header
41
42 #include <ras.h>
43 #include <lmcons.h>
44
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48
49 #if (_WIN32_WINNT >= 0x0500)
50 /*--- Router Management Reference - Router Management Enumerated Types */
51 typedef enum _ROUTER_CONNECTION_STATE {
52         ROUTER_IF_STATE_UNREACHABLE,
53         ROUTER_IF_STATE_DISCONNECTED,
54         ROUTER_IF_STATE_CONNECTING,
55         ROUTER_IF_STATE_CONNECTED
56 } ROUTER_CONNECTION_STATE;
57 typedef enum _ROUTER_INTERFACE_TYPE {
58         ROUTER_IF_TYPE_CLIENT,
59         ROUTER_IF_TYPE_HOME_ROUTER,
60         ROUTER_IF_TYPE_FULL_ROUTER,
61         ROUTER_IF_TYPE_DEDICATED,
62         ROUTER_IF_TYPE_INTERNAL,
63         ROUTER_IF_TYPE_LOOPBACK,
64         ROUTER_IF_TYPE_TUNNEL1,
65         ROUTER_IF_TYPE_DIALOUT
66 } ROUTER_INTERFACE_TYPE;
67 #define MPR_INTERFACE_ADMIN_DISABLED 0x00000002
68 #define MPR_INTERFACE_CONNECTION_FAILURE 0x00000004
69 #define MPR_INTERFACE_DIALOUT_HOURS_RESTRICTION 0x00000010
70 #define MPR_INTERFACE_OUT_OF_RESOURCES 0x00000001
71 #define MPR_INTERFACE_SERVICE_PAUSED 0x00000008
72 #define MPR_INTERFACE_NO_MEDIA_SENSE 0x00000020
73 #define MPR_INTERFACE_NO_DEVICE 0x00000040
74 /*--- Router Management MIB Reference - Transport and Protocol Constants */
75 #define PID_ATALK 0x00000029
76 #define PID_IP 0x00000021
77 #define PID_IPX 0x0000002B
78 #define PID_NBF 0x0000003F
79 /*--- Remote Access Service Administration Reference - RAS Administration Enumerated Types */
80 typedef enum _RAS_HARDWARE_CONDITION {
81         RAS_HARDWARE_OPERATIONAL,
82         RAS_HARDWARE_FAILURE
83 } RAS_HARDWARE_CONDITION;
84 typedef enum _RAS_PORT_CONDITION {
85         RAS_PORT_NON_OPERATIONAL,
86         RAS_PORT_DISCONNECTED,  
87         RAS_PORT_CALLING_BACK,
88         RAS_PORT_LISTENING,
89         RAS_PORT_AUTHENTICATING,
90         RAS_PORT_AUTHENTICATED, 
91         RAS_PORT_INITIALIZING
92 } RAS_PORT_CONDITION;
93 /*--- Remote Access Service Administration Reference - RAS Administration Structures */
94 #define ATADDRESSLEN 32
95 typedef struct _PPP_ATCP_INFO {
96         DWORD dwError;
97         WCHAR wszAddress[ATADDRESSLEN+1];
98 } PPP_ATCP_INFO;
99 typedef struct _PPP_CCP_INFO {
100         DWORD dwError;
101         DWORD dwCompressionAlgorithm;
102         DWORD dwOptions;
103         DWORD dwRemoteCompressionAlgorithm;
104         DWORD dwRemoteOptions;
105 } PPP_CCP_INFO;
106 #define RASCCPCA_STAC 0x00000005
107 #define RASCCPCA_MPPC 0x00000006
108 #define PPP_CCP_COMPRESSION 0x00000001
109 #define PPP_CCP_ENCRYPTION40BITOLD 0x00000010
110 #define PPP_CCP_ENCRYPTION40BIT 0x00000020
111 #define PPP_CCP_ENCRYPTION128BIT 0x00000040
112 #define PPP_CCP_ENCRYPTION56BIT 0x00000080
113 #define PPP_CCP_HISTORYLESS 0x01000000
114 #define IPADDRESSLEN 15
115 typedef struct _PPP_IPCP_INFO {
116         DWORD dwError;
117         WCHAR wszAddress[IPADDRESSLEN+1];
118         WCHAR wszRemoteAddress[IPADDRESSLEN+1];
119 } PPP_IPCP_INFO;
120 typedef struct _PPP_IPCP_INFO2 {
121         DWORD dwError;
122         WCHAR wszAddress[IPADDRESSLEN+1];
123         WCHAR wszRemoteAddress[IPADDRESSLEN+1];
124         DWORD dwOptions;
125         DWORD dwRemoteOptons;
126 } PPP_IPCP_INFO2;
127 #define IPXADDRESSLEN 22
128 typedef struct _PPP_IPXCP_INFO {
129         DWORD dwError;
130         WCHAR wszAddress[IPXADDRESSLEN+1];
131 } PPP_IPXCP_INFO;
132 typedef struct _PPP_LCP_INFO {
133         DWORD dwError;
134         DWORD dwAuthenticationProtocol;
135         DWORD dwAuthenticationData;
136         DWORD dwRemoteAuthenticationProtocol;
137         DWORD dwRemoteAuthenticationData;
138         DWORD dwTerminateReason;
139         DWORD dwRemoteTerminateReason;
140         DWORD dwOptions;
141         DWORD dwRemoteOptions;
142         DWORD dwEapTypeId;
143         DWORD dwRemoteEapTypeId;
144 } PPP_LCP_INFO;
145 #define PPP_LCP_PAP 0x0000C023
146 #define PPP_LCP_SPAP 0x0000C027
147 #define PPP_LCP_CHAP 0x0000C223
148 #define PPP_LCP_EAP 0x0000C227
149 #define PPP_LCP_CHAP_MD5 0x00000005
150 #define PPP_LCP_CHAP_MS 0x00000080
151 #define PPP_LCP_CHAP_MSV2 0x00000081
152 #define PPP_LCP_MULTILINK_FRAMING 0x00000001
153 typedef struct _PPP_NBFCP_INFO {
154         DWORD dwError;
155         WCHAR wszWksta[NETBIOS_NAME_LEN+1];
156 } PPP_NBFCP_INFO;
157 typedef struct _PPP_INFO {
158         PPP_NBFCP_INFO nbf;
159         PPP_IPCP_INFO ip;
160         PPP_IPXCP_INFO ipx;
161         PPP_ATCP_INFO at;
162 } PPP_INFO;
163 typedef struct _PPP_INFO_2 {
164         PPP_NBFCP_INFO nbf;
165         PPP_IPCP_INFO2 ip;
166         PPP_IPXCP_INFO ipx;
167         PPP_ATCP_INFO at;
168         PPP_CCP_INFO ccp;
169         PPP_LCP_INFO lcp;
170 } PPP_INFO_2;
171 #define MAX_INTERFACE_NAME_LEN 256
172 typedef struct _RAS_CONNECTION_0 {
173         HANDLE hConnection;
174         HANDLE hInterface;
175         DWORD dwConnectDuration;
176         ROUTER_INTERFACE_TYPE dwInterfaceType;
177         DWORD dwConnectionFlags;
178         WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
179         WCHAR wszUserName[UNLEN+1];
180         WCHAR wszLogonDomain[DNLEN+1];
181         WCHAR wszRemoteComputer[NETBIOS_NAME_LEN+1];
182 } RAS_CONNECTION_0,*PRAS_CONNECTION_0;
183 #define RAS_FLAGS_PPP_CONNECTION 0x00000001
184 #define RAS_FLAGS_MESSENGER_PRESENT 0x00000002
185 #define RAS_FLAGS_RAS_CONNECTION 0x00000004
186 #define RAS_FLAGS_QUARANTINE_PRESENT 0x00000008
187 typedef struct RAS_CONNECTION_1 {
188         HANDLE hConnection;
189         HANDLE hInterface;
190         PPP_INFO PppInfo;
191         DWORD dwBytesXmited;
192         DWORD dwBytesRcved;
193         DWORD dwFramesXmited;
194         DWORD dwFramesRcved;
195         DWORD dwCrcErr;
196         DWORD dwTimeoutErr;
197         DWORD dwAlignmentErr;
198         DWORD dwHardwareOverrunErr;
199         DWORD dwFramingErr;
200         DWORD dwBufferOverrunErr;
201         DWORD dwCompressionRatioIn;
202         DWORD dwCompressionRatioOut;
203 } RAS_CONNECTION_1,*PRAS_CONNECTION_1;
204 typedef struct _RAS_CONNECTION_2 {
205         HANDLE hConnection;
206         WCHAR wszUserName[UNLEN+1];
207         ROUTER_INTERFACE_TYPE dwInterfaceType;
208         GUID guid;
209         PPP_INFO_2 PppInfo2;
210 } RAS_CONNECTION_2,*PRAS_CONNECTION_2;
211 #define MAX_PORT_NAME 16
212 #define MAX_MEDIA_NAME 16
213 #define MAX_DEVICE_NAME 128
214 #define MAX_DEVICETYPE_NAME 16
215 typedef struct _RAS_PORT_0 {
216         HANDLE hPort;
217         HANDLE hConnection;
218         RAS_PORT_CONDITION dwPortCondition;
219         DWORD dwTotalNumberOfCalls;
220         DWORD dwConnectDuration;
221         WCHAR wszPortName[MAX_PORT_NAME+1];
222         WCHAR wszMediaName[MAX_MEDIA_NAME+1];
223         WCHAR wszDeviceName[MAX_DEVICE_NAME+1];
224         WCHAR wszDeviceType[MAX_DEVICETYPE_NAME+1];
225 } RAS_PORT_0,*PRAS_PORT_0;
226 typedef struct _RAS_PORT_1 {
227         HANDLE hPort;
228         HANDLE hConnection;
229         RAS_HARDWARE_CONDITION dwHardwareCondition;
230         DWORD dwLineSpeed;
231         DWORD dwBytesXmited;
232         DWORD dwBytesRcved;
233         DWORD dwFramesXmited;
234         DWORD dwFramesRcved;
235         DWORD dwCrcErr;
236         DWORD dwTimeoutErr;
237         DWORD dwAlignmentErr;
238         DWORD dwHardwareOverrunErr;
239         DWORD dwFramingErr;
240         DWORD dwBufferOverrunErr;
241         DWORD dwCompressionRatioIn;
242         DWORD dwCompressionRatioOut;
243 } RAS_PORT_1,*PRAS_PORT_1;
244 #define MAX_PHONE_NUMBER_LEN 128
245 typedef struct _RAS_USER_0 {
246         BYTE bfPrivilege;
247         WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN+1];
248 } RAS_USER_0,*PRAS_USER_0;
249 #define RASPRIV_NoCallback 0x01
250 #define RASPRIV_AdminSetCallback 0x02
251 #define RASPRIV_CallerSetCallback 0x04
252 #define RASPRIV_DialinPrivilege 0x08
253 #define RASPRIV_CallbackType 0x07
254 typedef struct _RAS_USER_1 {
255         BYTE bfPrivilege;
256         WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN+1];
257         BYTE bfPrivilege2;
258 } RAS_USER_1,*PRAS_USER_1;
259 #define RASPRIV2_DialinPolicy 0x01
260 /*--- Router Management Reference - Router Management Structures */
261 typedef struct _MPR_CREDENTIALSEX_0 {
262         DWORD  dwSize;
263         LPBYTE lpbCredentialsInfo;
264 } MPR_CREDENTIALSEX_0,*PMPR_CREDENTIALSEX_0;
265 #if (_WIN32_WINNT >= 0x0502)
266 typedef struct _MPR_CREDENTIALSEX_1 {
267         DWORD  dwSize;
268         LPBYTE lpbCredentialsInfo;
269 } MPR_CREDENTIALSEX_1,*PMPR_CREDENTIALSEX_1;
270 #endif
271 #define MPR_MaxDeviceType RAS_MaxDeviceType
272 #define MPR_MaxDeviceName RAS_MaxDeviceName
273 #define MPR_MaxPadType RAS_MaxPadType
274 #define MPR_MaxX25Address RAS_MaxX25Address
275 #define MPR_MaxFacilities RAS_MaxFacilities
276 #define MPR_MaxUserData RAS_MaxUserData
277 #define MPR_MaxPhoneNumber RAS_MaxPhoneNumber
278 typedef struct _MPR_DEVICE_0 {
279         WCHAR szDeviceType[MPR_MaxDeviceType+1];
280         WCHAR szDeviceName[MPR_MaxDeviceName+1];
281 } MPR_DEVICE_0,*PMPR_DEVICE_0;
282 typedef struct _MPR_DEVICE_1 {
283         WCHAR szDeviceType[MPR_MaxDeviceType+1];
284         WCHAR szDeviceName[MPR_MaxDeviceName+1];
285         WCHAR szLocalPhoneNumber[MPR_MaxPhoneNumber+1];
286         PWCHAR szAlternates;
287 } MPR_DEVICE_1,*PMPR_DEVICE_1;
288 #define MAX_TRANSPORT_NAME_LEN 40
289 typedef struct _MPR_IFTRANSPORT_0 {
290         DWORD dwTransportId;
291         HANDLE hIfTransport;
292         WCHAR wszIfTransportName[MAX_TRANSPORT_NAME_LEN+1];
293 } MPR_IFTRANSPORT_0,*PMPR_IFTRANSPORT_0;
294 typedef struct _MPR_INTERFACE_0 {
295         WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
296         HANDLE hInterface;
297         BOOL fEnabled;
298         ROUTER_INTERFACE_TYPE dwIfType;
299         ROUTER_CONNECTION_STATE dwConnectionState;
300         DWORD fUnReachabilityReasons;
301         DWORD dwLastError;
302 } MPR_INTERFACE_0,*PMPR_INTERFACE_0;
303 typedef struct _MPR_INTERFACE_1 {
304         WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
305         HANDLE hInterface;
306         BOOL fEnabled;
307         ROUTER_INTERFACE_TYPE IfType;
308         ROUTER_CONNECTION_STATE dwConnectionState;
309         DWORD fUnReachabilityReasons;
310         DWORD dwLastError;
311         LPWSTR lpwsDialoutHoursRestriction;
312 } MPR_INTERFACE_1,*PMPR_INTERFACE_1;
313 typedef struct _MPR_INTERFACE_2 {
314         WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
315         HANDLE hInterface;
316         BOOL fEnabled;
317         ROUTER_INTERFACE_TYPE dwIfType;
318         ROUTER_CONNECTION_STATE dwConnectionState;
319         DWORD fUnReachabilityReasons;
320         DWORD dwLastError;
321         DWORD dwfOptions;
322         WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber+1];
323         PWCHAR szAlternates;
324         DWORD ipaddr;
325         DWORD ipaddrDns;
326         DWORD ipaddrDnsAlt;
327         DWORD ipaddrWins;
328         DWORD ipaddrWinsAlt;
329         DWORD dwfNetProtocols;
330         WCHAR szDeviceType[MPR_MaxDeviceType+1];
331         WCHAR szDeviceName[MPR_MaxDeviceName+1];
332         WCHAR szX25PadType[MPR_MaxPadType+1];
333         WCHAR szX25Address[MPR_MaxX25Address+1];
334         WCHAR szX25Facilities[MPR_MaxFacilities+1];
335         WCHAR szX25UserData[MPR_MaxUserData+1];
336         DWORD dwChannels;
337         DWORD dwSubEntries;
338         DWORD dwDialMode;
339         DWORD dwDialExtraPercent;
340         DWORD dwDialExtraSampleSeconds;
341         DWORD dwHangUpExtraPercent;
342         DWORD dwHangUpExtraSampleSeconds;
343         DWORD dwIdleDisconnectSeconds;
344         DWORD dwType;
345         DWORD dwEncryptionType;
346         DWORD dwCustomAuthKey;
347         DWORD dwCustomAuthDataSize;
348         LPBYTE lpbCustomAuthData;
349         GUID guidId;
350         DWORD dwVpnStrategy;
351 } MPR_INTERFACE_2,*PMPR_INTERFACE_2;
352 #define MPRIO_SpecificIpAddr RASEO_SpecificIpAddr
353 #define MPRIO_SpecificNameServers RASEO_SpecificNameServers
354 #define MPRIO_IpHeaderCompression RASEO_IpHeaderCompression
355 #define MPRIO_RemoteDefaultGateway RASEO_RemoteDefaultGateway
356 #define MPRIO_DisableLcpExtensions RASEO_DisableLcpExtensions
357 #define MPRIO_SwCompression RASEO_SwCompression
358 #define MPRIO_RequireEncryptedPw RASEO_RequireEncryptedPw
359 #define MPRIO_RequireMsEncryptedPw RASEO_RequireMsEncryptedPw
360 #define MPRIO_RequireDataEncryption RASEO_RequireDataEncryption
361 #define MPRIO_NetworkLogon RASEO_NetworkLogon
362 #define MPRIO_UseLogonCredentials RASEO_UseLogonCredentials
363 #define MPRIO_PromoteAlternates RASEO_PromoteAlternates
364 #define MPRIO_SecureLocalFiles RASEO_SecureLocalFiles
365 #define MPRIO_RequireEAP RASEO_RequireEAP
366 #define MPRIO_RequirePAP RASEO_RequirePAP
367 #define MPRIO_RequireSPAP RASEO_RequireSPAP
368 #define MPRIO_SharedPhoneNumbers RASEO_SharedPhoneNumbers
369 #define MPRIO_RequireCHAP RASEO_RequireCHAP
370 #define MPRIO_RequireMsCHAP RASEO_RequireMsCHAP
371 #define MPRIO_RequireMsCHAP2 RASEO_RequireMsCHAP2
372 #define MPRNP_Ipx RASNP_Ipx
373 #define MPRNP_Ip RASNP_Ip
374 #define MPRDT_Modem RASDT_Modem
375 #define MPRDT_Isdn RASDT_Isdn
376 #define MPRDT_X25 RASDT_X25
377 #define MPRDT_Vpn RASDT_Vpn
378 #define MPRDT_Pad RASDT_Pad
379 #define MPRDT_Generic RASDT_Generic
380 #define MPRDT_Serial RASDT_Serial
381 #define MPRDT_FrameRelay RASDT_FrameRelay
382 #define MPRDT_Atm RASDT_Atm
383 #define MPRDT_Sonet RASDT_Sonet
384 #define MPRDT_SW56 RASDT_SW56
385 #define MPRDT_Irda RASDT_Irda
386 #define MPRDT_Parallel RASDT_Parallel
387 #define MPRDM_DialAll RASEDM_DialAll
388 #define MPRDM_DialAsNeeded RASEDM_DialAsNeeded
389 #define MPRIDS_Disabled RASIDS_Disabled
390 #define MPRIDS_UseGlobalValue RASIDS_UseGlobalValue
391 #define MPRET_Phone RASET_Phone
392 #define MPRET_Vpn RASET_Vpn
393 #define MPRET_Direct RASET_Direct
394 #define MPR_ET_None ET_None
395 #define MPR_ET_Require ET_Require
396 #define MPR_ET_RequireMax ET_RequireMax
397 #define MPR_ET_Optional ET_Optional
398 #define MPR_VS_Default VS_Default       
399 #define MPR_VS_PptpOnly VS_PptpOnly
400 #define MPR_VS_PptpFirst VS_PptpFirst
401 #define MPR_VS_L2tpOnly VS_L2tpOnly
402 #define MPR_VS_L2tpFirst VS_L2tpFirst
403 #if (_WIN32_WINNT>=0x0600)
404 typedef struct _MPR_INTERFACE_3 {
405         WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
406         HANDLE hInterface;
407         BOOL fEnabled;
408         ROUTER_INTERFACE_TYPE dwIfType;
409         ROUTER_CONNECTION_STATE dwConnectionState;
410         DWORD fUnReachabilityReasons;
411         DWORD dwLastError;
412         DWORD dwfOptions;
413         WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber+1];
414         PWCHAR szAlternates;
415         DWORD ipaddr;
416         DWORD ipaddrDns;
417         DWORD ipaddrDnsAlt;
418         DWORD ipaddrWins;
419         DWORD ipaddrWinsAlt;
420         DWORD dwfNetProtocols;
421         WCHAR szDeviceType[MPR_MaxDeviceType+1];
422         WCHAR szDeviceName[MPR_MaxDeviceName+1];
423         WCHAR szX25PadType[MPR_MaxPadType+1];
424         WCHAR szX25Address[MPR_MaxX25Address+1];
425         WCHAR szX25Facilities[MPR_MaxFacilities+1];
426         WCHAR szX25UserData[MPR_MaxUserData+1];
427         DWORD dwChannels;
428         DWORD dwSubEntries;
429         DWORD dwDialMode;
430         DWORD dwDialExtraPercent;
431         DWORD dwDialExtraSampleSeconds;
432         DWORD dwHangUpExtraPercent;
433         DWORD dwHangUpExtraSampleSeconds;
434         DWORD dwIdleDisconnectSeconds;
435         DWORD dwType;
436         DWORD dwEncryptionType;
437         DWORD dwCustomAuthKey;
438         DWORD dwCustomAuthDataSize;
439         LPBYTE lpbCustomAuthData;
440         GUID guidId;
441         DWORD dwVpnStrategy;
442         ULONG AddressCount;
443         IN6_ADDR ipv6addrDns;
444         IN6_ADDR ipv6addrDnsAlt;
445         IN6_ADDR* ipv6addr;
446 } MPR_INTERFACE_3,*PMPR_INTERFACE_3;
447 #endif
448 typedef struct _MPR_SERVER_0 {
449         BOOL fLanOnlyMode;
450         DWORD dwUpTime;
451         DWORD dwTotalPorts;
452         DWORD dwPortsInUse;
453 } MPR_SERVER_0,*PMPR_SERVER_0;
454 #if (_WIN32_WINNT >= 0x0502)
455 typedef struct _MPR_SERVER_1 {
456         DWORD dwNumPptpPorts;
457         DWORD dwPptpPortFlags;
458         DWORD dwNumL2tpPorts;
459         DWORD dwL2tpPortFlags;
460 } MPR_SERVER_1,*PMPR_SERVER_1;
461 #define MPR_ENABLE_RAS_ON_DEVICE 0x00000001
462 #define MPR_ENABLE_ROUTING_ON_DEVICE 0x00000002
463 #endif
464 typedef struct _MPR_TRANSPORT_0 {
465         DWORD dwTransportId;
466         HANDLE hTransport;
467         WCHAR wszTransportName[MAX_TRANSPORT_NAME_LEN+1];
468 } MPR_TRANSPORT_0,*PMPR_TRANSPORT_0;
469 typedef HANDLE RAS_SERVER_HANDLE;
470 typedef HANDLE MPR_SERVER_HANDLE;
471 /*--- Remote Access Service Administration Reference - RAS Administration Functions */
472 DWORD WINAPI MprAdminConnectionClearStats(RAS_SERVER_HANDLE,HANDLE);
473 DWORD WINAPI MprAdminConnectionEnum(RAS_SERVER_HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
474 DWORD WINAPI MprAdminConnectionGetInfo(RAS_SERVER_HANDLE,DWORD,HANDLE,LPBYTE*);
475 DWORD WINAPI MprAdminConnectionRemoveQuarantine(HANDLE,HANDLE,BOOL);
476 DWORD WINAPI MprAdminPortClearStats(RAS_SERVER_HANDLE,HANDLE);
477 DWORD WINAPI MprAdminPortDisconnect(RAS_SERVER_HANDLE,HANDLE);
478 DWORD WINAPI MprAdminPortEnum(RAS_SERVER_HANDLE,DWORD,HANDLE,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
479 DWORD WINAPI MprAdminPortGetInfo(RAS_SERVER_HANDLE,DWORD,HANDLE,LPBYTE);
480 DWORD WINAPI MprAdminPortReset(RAS_SERVER_HANDLE,HANDLE);
481 /*--- Remote Access Service Administration Reference - RAS Administration Functions - RAS Admin DLL Functions */
482 BOOL WINAPI MprAdminAcceptNewConnection(RAS_CONNECTION_0*,RAS_CONNECTION_1*);
483 BOOL WINAPI MprAdminAcceptNewConnection2(RAS_CONNECTION_0*,RAS_CONNECTION_1*,RAS_CONNECTION_2*);
484 BOOL WINAPI MprAdminAcceptNewLink(RAS_PORT_0*,RAS_PORT_1*);
485 #if (_WIN32_WINNT >= 0x0600)
486 BOOL WINAPI MprAdminAcceptReauthentication(RAS_CONNECTION_0*,RAS_CONNECTION_1*,RAS_CONNECTION_2*,RAS_CONNECTION_3*);
487 #endif
488 void WINAPI MprAdminConnectionHangupNotification(RAS_CONNECTION_0*,RAS_CONNECTION_1*);
489 void WINAPI MprAdminConnectionHangupNotification2(RAS_CONNECTION_0*,RAS_CONNECTION_1*,RAS_CONNECTION_2*);
490 DWORD WINAPI MprAdminGetIpAddressForUser(WCHAR*,WCHAR*,DWORD*,BOOL*);
491 #if (_WIN32_WINNT >= 0x0502)
492 DWORD WINAPI MprAdminInitializeDll(void);
493 DWORD WINAPI MprAdminTerminateDll(void);
494 #endif
495 void WINAPI MprAdminLinkHangupNotification(RAS_PORT_0*,RAS_PORT_1*);
496 void WINAPI MprAdminReleaseIpAddress(WCHAR*,WCHAR*,DWORD*);
497 /*--- Remote Access Service Administration Reference - RAS Administration Functions - RAS User Administration Functions */
498 DWORD WINAPI MprAdminGetPDCServer(const WCHAR*,const WCHAR*,LPWSTR);
499 DWORD WINAPI MprAdminSendUserMessage(MPR_SERVER_HANDLE,HANDLE,LPWSTR);
500 DWORD WINAPI MprAdminUserGetInfo(const WCHAR*,const WCHAR*,DWORD,LPBYTE);
501 DWORD WINAPI MprAdminUserSetInfo(const WCHAR*,const WCHAR*,DWORD,const LPBYTE);
502 /*--- Router Management Reference - Router Administration Functions */
503 DWORD WINAPI MprAdminBufferFree(LPVOID);
504 DWORD WINAPI MprAdminDeregisterConnectionNotification(MPR_SERVER_HANDLE,HANDLE);
505 DWORD WINAPI MprAdminEstablishDomainRasServer(PWCHAR,PWCHAR,BOOL);
506 DWORD WINAPI MprAdminGetErrorString(DWORD,LPWSTR*);
507 DWORD WINAPI MprAdminInterfaceConnect(MPR_SERVER_HANDLE,HANDLE,HANDLE,BOOL);
508 DWORD WINAPI MprAdminInterfaceCreate(MPR_SERVER_HANDLE,DWORD,LPBYTE,HANDLE*);
509 DWORD WINAPI MprAdminInterfaceDelete(MPR_SERVER_HANDLE,HANDLE);
510 DWORD WINAPI MprAdminInterfaceDeviceGetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,DWORD,LPBYTE*);
511 DWORD WINAPI MprAdminInterfaceDeviceSetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,DWORD,LPBYTE);
512 DWORD WINAPI MprAdminInterfaceDisconnect(MPR_SERVER_HANDLE,HANDLE);
513 DWORD WINAPI MprAdminInterfaceEnum(MPR_SERVER_HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
514 DWORD WINAPI MprAdminInterfaceGetCredentials(LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR);
515 DWORD WINAPI MprAdminInterfaceGetHandle(MPR_SERVER_HANDLE,LPWSTR,HANDLE*,BOOL);
516 DWORD WINAPI MprAdminInterfaceGetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE*);
517 DWORD WINAPI MprAdminInterfaceQueryUpdateResult(MPR_SERVER_HANDLE,HANDLE,DWORD,LPDWORD);
518 DWORD WINAPI MprAdminInterfaceSetCredentials(LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR);
519 DWORD WINAPI MprAdminInterfaceSetCredentialsEx(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE);
520 DWORD WINAPI MprAdminInterfaceSetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE);
521 DWORD WINAPI MprAdminInterfaceTransportAdd(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE,DWORD);
522 DWORD WINAPI MprAdminInterfaceTransportGetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE*,LPDWORD);
523 DWORD WINAPI MprAdminInterfaceTransportRemove(MPR_SERVER_HANDLE,HANDLE,DWORD);
524 DWORD WINAPI MprAdminInterfaceTransportSetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE,DWORD);
525 DWORD WINAPI MprAdminInterfaceUpdatePhonebookInfo(MPR_SERVER_HANDLE,HANDLE);
526 DWORD WINAPI MprAdminInterfaceUpdateRoutes(MPR_SERVER_HANDLE,HANDLE,DWORD,HANDLE);
527 DWORD WINAPI MprAdminIsDomainRasServer(PWCHAR,PWCHAR,PBOOL);
528 BOOL WINAPI MprAdminIsServiceRunning(LPWSTR);
529 DWORD WINAPI MprAdminRegisterConnectionNotification(MPR_SERVER_HANDLE,HANDLE);
530 DWORD WINAPI MprAdminServerConnect(LPWSTR,MPR_SERVER_HANDLE*);
531 void WINAPI MprAdminServerDisconnect(MPR_SERVER_HANDLE);
532 DWORD WINAPI MprAdminServerGetCredentials(MPR_SERVER_HANDLE,DWORD,LPBYTE*);
533 DWORD WINAPI MprAdminInterfaceGetCredentialsEx(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE*);
534 DWORD WINAPI MprAdminServerGetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE*);
535 DWORD WINAPI MprAdminServerSetCredentials(MPR_SERVER_HANDLE,DWORD,LPBYTE);
536 DWORD WINAPI MprAdminServerSetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE);
537 DWORD WINAPI MprAdminTransportCreate(MPR_SERVER_HANDLE,DWORD,LPWSTR,LPBYTE,DWORD,LPBYTE,DWORD,LPWSTR);
538 DWORD WINAPI MprAdminTransportGetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE*,LPDWORD,LPBYTE*,LPDWORD);
539 DWORD WINAPI MprAdminTransportSetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE,DWORD,LPBYTE,DWORD);
540 /*--- Router Management Reference - Router Configuration Functions */
541 DWORD WINAPI MprConfigBufferFree(LPVOID);
542 DWORD WINAPI MprConfigGetFriendlyName(HANDLE,PWCHAR,PWCHAR,DWORD);
543 DWORD WINAPI MprConfigGetGuidName(HANDLE,PWCHAR,PWCHAR,DWORD);
544 DWORD WINAPI MprConfigInterfaceCreate(HANDLE,DWORD,LPBYTE,HANDLE*);
545 DWORD WINAPI MprConfigInterfaceDelete(HANDLE,HANDLE);
546 DWORD WINAPI MprConfigInterfaceEnum(HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
547 DWORD WINAPI MprConfigInterfaceGetHandle(HANDLE,LPWSTR,HANDLE*);
548 DWORD WINAPI MprConfigInterfaceGetInfo(HANDLE,HANDLE,DWORD,LPBYTE*,LPDWORD);
549 DWORD WINAPI MprConfigInterfaceSetInfo(HANDLE,HANDLE,DWORD,LPBYTE);
550 DWORD WINAPI MprConfigInterfaceTransportAdd(HANDLE,HANDLE,DWORD,LPWSTR,LPBYTE,DWORD,HANDLE*);
551 DWORD WINAPI MprConfigInterfaceTransportEnum(HANDLE,HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
552 DWORD WINAPI MprConfigInterfaceTransportGetHandle(HANDLE,HANDLE,DWORD,HANDLE*);
553 DWORD WINAPI MprConfigInterfaceTransportGetInfo(HANDLE,HANDLE,HANDLE,LPBYTE*,LPDWORD);
554 DWORD WINAPI MprConfigInterfaceTransportRemove(HANDLE,HANDLE,HANDLE);
555 DWORD WINAPI MprConfigInterfaceTransportSetInfo(HANDLE,HANDLE,HANDLE,LPBYTE,DWORD);
556 DWORD WINAPI MprConfigServerBackup(HANDLE,LPWSTR);
557 DWORD WINAPI MprConfigServerConnect(LPWSTR,HANDLE*);
558 void WINAPI MprConfigServerDisconnect(HANDLE);
559 DWORD WINAPI MprConfigServerGetInfo(HANDLE,DWORD,LPBYTE*);
560 DWORD WINAPI MprConfigServerInstall(DWORD,PVOID);
561 DWORD WINAPI MprConfigServerRestore(HANDLE,LPWSTR);
562 DWORD WINAPI MprConfigServerSetInfo(HANDLE,DWORD,LPBYTE);
563 DWORD WINAPI MprConfigTransportCreate(HANDLE,DWORD,LPWSTR,LPBYTE,DWORD,LPBYTE,DWORD,LPWSTR,HANDLE);
564 DWORD WINAPI MprConfigTransportDelete(HANDLE,HANDLE);
565 DWORD WINAPI MprConfigTransportEnum(HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
566 DWORD WINAPI MprConfigTransportGetHandle(HANDLE,DWORD,HANDLE*);
567 DWORD WINAPI MprConfigTransportGetInfo(HANDLE,HANDLE,LPBYTE*,LPDWORD,LPBYTE*,LPDWORD,LPWSTR*);
568 DWORD WINAPI MprConfigTransportSetInfo(HANDLE,HANDLE,LPBYTE,DWORD,LPBYTE,DWORD,LPWSTR);
569 /*--- Router Management Reference - Information Header Functions */
570 DWORD WINAPI MprInfoBlockAdd(LPVOID,DWORD,DWORD,DWORD,LPBYTE,LPVOID*);
571 DWORD WINAPI MprInfoBlockFind(LPVOID,DWORD,LPDWORD,LPDWORD,LPBYTE*);
572 DWORD WINAPI MprInfoBlockQuerySize(LPVOID);
573 DWORD WINAPI MprInfoBlockRemove(LPVOID,DWORD,LPVOID*);
574 DWORD WINAPI MprInfoBlockSet(LPVOID,DWORD,DWORD,DWORD,LPBYTE,LPVOID*);
575 DWORD WINAPI MprInfoCreate(DWORD,LPVOID*);
576 DWORD WINAPI MprInfoDelete(LPVOID);
577 DWORD WINAPI MprInfoDuplicate(LPVOID,LPVOID*);
578 DWORD WINAPI MprInfoRemoveAll(LPVOID,LPVOID*);
579 /*--- Router Management MIB Reference - Router Management MIB Functions */
580 typedef HANDLE MIB_SERVER_HANDLE;
581 DWORD WINAPI MprAdminMIBBufferFree(LPVOID);
582 DWORD WINAPI MprAdminMIBEntryCreate(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD);
583 DWORD WINAPI MprAdminMIBEntryDelete(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD);
584 DWORD WINAPI MprAdminMIBEntryGet(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
585 DWORD WINAPI MprAdminMIBEntryGetFirst(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
586 DWORD WINAPI MprAdminMIBEntryGetNext(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
587 DWORD WINAPI MprAdminMIBEntrySet(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD);
588 DWORD WINAPI MprAdminMIBGetTrapInfo(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
589 DWORD WINAPI MprAdminMIBServerConnect(LPWSTR,MIB_SERVER_HANDLE*);
590 void WINAPI MprAdminMIBServerDisconnect(MIB_SERVER_HANDLE);
591 DWORD WINAPI MprAdminMIBSetTrapInfo(DWORD,DWORD,HANDLE,LPVOID,DWORD,LPVOID*,LPDWORD);
592 #endif /* (_WIN32_WINNT >= 0x0500) */
593
594 #ifdef __cplusplus
595 }
596 #endif
597 #endif