OSDN Git Service

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