3 * @copy 2012 MinGW.org project
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:
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
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.
26 * Routing and Remote Access Services
30 #pragma GCC system_header
39 #if (_WIN32_WINNT >= 0x0500)
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,
73 } RAS_HARDWARE_CONDITION;
74 typedef enum _RAS_PORT_CONDITION {
75 RAS_PORT_NON_OPERATIONAL,
76 RAS_PORT_DISCONNECTED,
77 RAS_PORT_CALLING_BACK,
79 RAS_PORT_AUTHENTICATING,
80 RAS_PORT_AUTHENTICATED,
83 /*--- Remote Access Service Administration Reference - RAS Administration Structures */
84 #define ATADDRESSLEN 32
85 typedef struct _PPP_ATCP_INFO {
87 WCHAR wszAddress[ATADDRESSLEN+1];
89 typedef struct _PPP_CCP_INFO {
91 DWORD dwCompressionAlgorithm;
93 DWORD dwRemoteCompressionAlgorithm;
94 DWORD dwRemoteOptions;
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 {
107 WCHAR wszAddress[IPADDRESSLEN+1];
108 WCHAR wszRemoteAddress[IPADDRESSLEN+1];
110 typedef struct _PPP_IPCP_INFO2 {
112 WCHAR wszAddress[IPADDRESSLEN+1];
113 WCHAR wszRemoteAddress[IPADDRESSLEN+1];
115 DWORD dwRemoteOptons;
117 #define IPXADDRESSLEN 22
118 typedef struct _PPP_IPXCP_INFO {
120 WCHAR wszAddress[IPXADDRESSLEN+1];
122 typedef struct _PPP_LCP_INFO {
124 DWORD dwAuthenticationProtocol;
125 DWORD dwAuthenticationData;
126 DWORD dwRemoteAuthenticationProtocol;
127 DWORD dwRemoteAuthenticationData;
128 DWORD dwTerminateReason;
129 DWORD dwRemoteTerminateReason;
131 DWORD dwRemoteOptions;
133 DWORD dwRemoteEapTypeId;
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 {
145 WCHAR wszWksta[NETBIOS_NAME_LEN+1];
147 typedef struct _PPP_INFO {
153 typedef struct _PPP_INFO_2 {
161 #define MAX_INTERFACE_NAME_LEN 256
162 typedef struct _RAS_CONNECTION_0 {
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 {
183 DWORD dwFramesXmited;
187 DWORD dwAlignmentErr;
188 DWORD dwHardwareOverrunErr;
190 DWORD dwBufferOverrunErr;
191 DWORD dwCompressionRatioIn;
192 DWORD dwCompressionRatioOut;
193 } RAS_CONNECTION_1,*PRAS_CONNECTION_1;
194 typedef struct _RAS_CONNECTION_2 {
196 WCHAR wszUserName[UNLEN+1];
197 ROUTER_INTERFACE_TYPE dwInterfaceType;
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 {
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 {
219 RAS_HARDWARE_CONDITION dwHardwareCondition;
223 DWORD dwFramesXmited;
227 DWORD dwAlignmentErr;
228 DWORD dwHardwareOverrunErr;
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 {
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 {
246 WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN+1];
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 {
253 LPBYTE lpbCredentialsInfo;
254 } MPR_CREDENTIALSEX_0,*PMPR_CREDENTIALSEX_0;
255 #if (_WIN32_WINNT >= 0x0502)
256 typedef struct _MPR_CREDENTIALSEX_1 {
258 LPBYTE lpbCredentialsInfo;
259 } MPR_CREDENTIALSEX_1,*PMPR_CREDENTIALSEX_1;
261 #define MPR_MaxDeviceType RAS_MaxDeviceType
262 #define MPR_MaxDeviceName RAS_MaxDeviceName
263 #define MPR_MaxPadType RAS_MaxPadType
264 #define MPR_MaxX25Address RAS_MaxX25Address
265 #define MPR_MaxFacilities RAS_MaxFacilities
266 #define MPR_MaxUserData RAS_MaxUserData
267 #define MPR_MaxPhoneNumber RAS_MaxPhoneNumber
268 typedef struct _MPR_DEVICE_0 {
269 WCHAR szDeviceType[MPR_MaxDeviceType+1];
270 WCHAR szDeviceName[MPR_MaxDeviceName+1];
271 } MPR_DEVICE_0,*PMPR_DEVICE_0;
272 typedef struct _MPR_DEVICE_1 {
273 WCHAR szDeviceType[MPR_MaxDeviceType+1];
274 WCHAR szDeviceName[MPR_MaxDeviceName+1];
275 WCHAR szLocalPhoneNumber[MPR_MaxPhoneNumber+1];
277 } MPR_DEVICE_1,*PMPR_DEVICE_1;
278 #define MAX_TRANSPORT_NAME_LEN 40
279 typedef struct _MPR_IFTRANSPORT_0 {
282 WCHAR wszIfTransportName[MAX_TRANSPORT_NAME_LEN+1];
283 } MPR_IFTRANSPORT_0,*PMPR_IFTRANSPORT_0;
284 typedef struct _MPR_INTERFACE_0 {
285 WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
288 ROUTER_INTERFACE_TYPE dwIfType;
289 ROUTER_CONNECTION_STATE dwConnectionState;
290 DWORD fUnReachabilityReasons;
292 } MPR_INTERFACE_0,*PMPR_INTERFACE_0;
293 typedef struct _MPR_INTERFACE_1 {
294 WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
297 ROUTER_INTERFACE_TYPE IfType;
298 ROUTER_CONNECTION_STATE dwConnectionState;
299 DWORD fUnReachabilityReasons;
301 LPWSTR lpwsDialoutHoursRestriction;
302 } MPR_INTERFACE_1,*PMPR_INTERFACE_1;
303 typedef struct _MPR_INTERFACE_2 {
304 WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
307 ROUTER_INTERFACE_TYPE dwIfType;
308 ROUTER_CONNECTION_STATE dwConnectionState;
309 DWORD fUnReachabilityReasons;
312 WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber+1];
319 DWORD dwfNetProtocols;
320 WCHAR szDeviceType[MPR_MaxDeviceType+1];
321 WCHAR szDeviceName[MPR_MaxDeviceName+1];
322 WCHAR szX25PadType[MPR_MaxPadType+1];
323 WCHAR szX25Address[MPR_MaxX25Address+1];
324 WCHAR szX25Facilities[MPR_MaxFacilities+1];
325 WCHAR szX25UserData[MPR_MaxUserData+1];
329 DWORD dwDialExtraPercent;
330 DWORD dwDialExtraSampleSeconds;
331 DWORD dwHangUpExtraPercent;
332 DWORD dwHangUpExtraSampleSeconds;
333 DWORD dwIdleDisconnectSeconds;
335 DWORD dwEncryptionType;
336 DWORD dwCustomAuthKey;
337 DWORD dwCustomAuthDataSize;
338 LPBYTE lpbCustomAuthData;
341 } MPR_INTERFACE_2,*PMPR_INTERFACE_2;
342 #define MPRIO_SpecificIpAddr RASEO_SpecificIpAddr
343 #define MPRIO_SpecificNameServers RASEO_SpecificNameServers
344 #define MPRIO_IpHeaderCompression RASEO_IpHeaderCompression
345 #define MPRIO_RemoteDefaultGateway RASEO_RemoteDefaultGateway
346 #define MPRIO_DisableLcpExtensions RASEO_DisableLcpExtensions
347 #define MPRIO_SwCompression RASEO_SwCompression
348 #define MPRIO_RequireEncryptedPw RASEO_RequireEncryptedPw
349 #define MPRIO_RequireMsEncryptedPw RASEO_RequireMsEncryptedPw
350 #define MPRIO_RequireDataEncryption RASEO_RequireDataEncryption
351 #define MPRIO_NetworkLogon RASEO_NetworkLogon
352 #define MPRIO_UseLogonCredentials RASEO_UseLogonCredentials
353 #define MPRIO_PromoteAlternates RASEO_PromoteAlternates
354 #define MPRIO_SecureLocalFiles RASEO_SecureLocalFiles
355 #define MPRIO_RequireEAP RASEO_RequireEAP
356 #define MPRIO_RequirePAP RASEO_RequirePAP
357 #define MPRIO_RequireSPAP RASEO_RequireSPAP
358 #define MPRIO_SharedPhoneNumbers RASEO_SharedPhoneNumbers
359 #define MPRIO_RequireCHAP RASEO_RequireCHAP
360 #define MPRIO_RequireMsCHAP RASEO_RequireMsCHAP
361 #define MPRIO_RequireMsCHAP2 RASEO_RequireMsCHAP2
362 #define MPRNP_Ipx RASNP_Ipx
363 #define MPRNP_Ip RASNP_Ip
364 #define MPRDT_Modem RASDT_Modem
365 #define MPRDT_Isdn RASDT_Isdn
366 #define MPRDT_X25 RASDT_X25
367 #define MPRDT_Vpn RASDT_Vpn
368 #define MPRDT_Pad RASDT_Pad
369 #define MPRDT_Generic RASDT_Generic
370 #define MPRDT_Serial RASDT_Serial
371 #define MPRDT_FrameRelay RASDT_FrameRelay
372 #define MPRDT_Atm RASDT_Atm
373 #define MPRDT_Sonet RASDT_Sonet
374 #define MPRDT_SW56 RASDT_SW56
375 #define MPRDT_Irda RASDT_Irda
376 #define MPRDT_Parallel RASDT_Parallel
377 #define MPRDM_DialAll RASEDM_DialAll
378 #define MPRDM_DialAsNeeded RASEDM_DialAsNeeded
379 #define MPRIDS_Disabled RASIDS_Disabled
380 #define MPRIDS_UseGlobalValue RASIDS_UseGlobalValue
381 #define MPRET_Phone RASET_Phone
382 #define MPRET_Vpn RASET_Vpn
383 #define MPRET_Direct RASET_Direct
384 #define MPR_ET_None ET_None
385 #define MPR_ET_Require ET_Require
386 #define MPR_ET_RequireMax ET_RequireMax
387 #define MPR_ET_Optional ET_Optional
388 #define MPR_VS_Default VS_Default
389 #define MPR_VS_PptpOnly VS_PptpOnly
390 #define MPR_VS_PptpFirst VS_PptpFirst
391 #define MPR_VS_L2tpOnly VS_L2tpOnly
392 #define MPR_VS_L2tpFirst VS_L2tpFirst
393 #if (_WIN32_WINNT>=0x0600)
394 typedef struct _MPR_INTERFACE_3 {
395 WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
398 ROUTER_INTERFACE_TYPE dwIfType;
399 ROUTER_CONNECTION_STATE dwConnectionState;
400 DWORD fUnReachabilityReasons;
403 WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber+1];
410 DWORD dwfNetProtocols;
411 WCHAR szDeviceType[MPR_MaxDeviceType+1];
412 WCHAR szDeviceName[MPR_MaxDeviceName+1];
413 WCHAR szX25PadType[MPR_MaxPadType+1];
414 WCHAR szX25Address[MPR_MaxX25Address+1];
415 WCHAR szX25Facilities[MPR_MaxFacilities+1];
416 WCHAR szX25UserData[MPR_MaxUserData+1];
420 DWORD dwDialExtraPercent;
421 DWORD dwDialExtraSampleSeconds;
422 DWORD dwHangUpExtraPercent;
423 DWORD dwHangUpExtraSampleSeconds;
424 DWORD dwIdleDisconnectSeconds;
426 DWORD dwEncryptionType;
427 DWORD dwCustomAuthKey;
428 DWORD dwCustomAuthDataSize;
429 LPBYTE lpbCustomAuthData;
433 IN6_ADDR ipv6addrDns;
434 IN6_ADDR ipv6addrDnsAlt;
436 } MPR_INTERFACE_3,*PMPR_INTERFACE_3;
438 typedef struct _MPR_SERVER_0 {
443 } MPR_SERVER_0,*PMPR_SERVER_0;
444 #if (_WIN32_WINNT >= 0x0502)
445 typedef struct _MPR_SERVER_1 {
446 DWORD dwNumPptpPorts;
447 DWORD dwPptpPortFlags;
448 DWORD dwNumL2tpPorts;
449 DWORD dwL2tpPortFlags;
450 } MPR_SERVER_1,*PMPR_SERVER_1;
451 #define MPR_ENABLE_RAS_ON_DEVICE 0x00000001
452 #define MPR_ENABLE_ROUTING_ON_DEVICE 0x00000002
454 typedef struct _MPR_TRANSPORT_0 {
457 WCHAR wszTransportName[MAX_TRANSPORT_NAME_LEN+1];
458 } MPR_TRANSPORT_0,*PMPR_TRANSPORT_0;
459 typedef HANDLE RAS_SERVER_HANDLE;
460 typedef HANDLE MPR_SERVER_HANDLE;
461 /*--- Remote Access Service Administration Reference - RAS Administration Functions */
462 DWORD WINAPI MprAdminConnectionClearStats(RAS_SERVER_HANDLE,HANDLE);
463 DWORD WINAPI MprAdminConnectionEnum(RAS_SERVER_HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
464 DWORD WINAPI MprAdminConnectionGetInfo(RAS_SERVER_HANDLE,DWORD,HANDLE,LPBYTE*);
465 DWORD WINAPI MprAdminConnectionRemoveQuarantine(HANDLE,HANDLE,BOOL);
466 DWORD WINAPI MprAdminPortClearStats(RAS_SERVER_HANDLE,HANDLE);
467 DWORD WINAPI MprAdminPortDisconnect(RAS_SERVER_HANDLE,HANDLE);
468 DWORD WINAPI MprAdminPortEnum(RAS_SERVER_HANDLE,DWORD,HANDLE,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
469 DWORD WINAPI MprAdminPortGetInfo(RAS_SERVER_HANDLE,DWORD,HANDLE,LPBYTE);
470 DWORD WINAPI MprAdminPortReset(RAS_SERVER_HANDLE,HANDLE);
471 /*--- Remote Access Service Administration Reference - RAS Administration Functions - RAS Admin DLL Functions */
472 BOOL WINAPI MprAdminAcceptNewConnection(RAS_CONNECTION_0*,RAS_CONNECTION_1*);
473 BOOL WINAPI MprAdminAcceptNewConnection2(RAS_CONNECTION_0*,RAS_CONNECTION_1*,RAS_CONNECTION_2*);
474 BOOL WINAPI MprAdminAcceptNewLink(RAS_PORT_0*,RAS_PORT_1*);
475 #if (_WIN32_WINNT >= 0x0600)
476 BOOL WINAPI MprAdminAcceptReauthentication(RAS_CONNECTION_0*,RAS_CONNECTION_1*,RAS_CONNECTION_2*,RAS_CONNECTION_3*);
478 void WINAPI MprAdminConnectionHangupNotification(RAS_CONNECTION_0*,RAS_CONNECTION_1*);
479 void WINAPI MprAdminConnectionHangupNotification2(RAS_CONNECTION_0*,RAS_CONNECTION_1*,RAS_CONNECTION_2*);
480 DWORD WINAPI MprAdminGetIpAddressForUser(WCHAR*,WCHAR*,DWORD*,BOOL*);
481 #if (_WIN32_WINNT >= 0x0502)
482 DWORD WINAPI MprAdminInitializeDll(void);
483 DWORD WINAPI MprAdminTerminateDll(void);
485 void WINAPI MprAdminLinkHangupNotification(RAS_PORT_0*,RAS_PORT_1*);
486 void WINAPI MprAdminReleaseIpAddress(WCHAR*,WCHAR*,DWORD*);
487 /*--- Remote Access Service Administration Reference - RAS Administration Functions - RAS User Administration Functions */
488 DWORD WINAPI MprAdminGetPDCServer(const WCHAR*,const WCHAR*,LPWSTR);
489 DWORD WINAPI MprAdminSendUserMessage(MPR_SERVER_HANDLE,HANDLE,LPWSTR);
490 DWORD WINAPI MprAdminUserGetInfo(const WCHAR*,const WCHAR*,DWORD,LPBYTE);
491 DWORD WINAPI MprAdminUserSetInfo(const WCHAR*,const WCHAR*,DWORD,const LPBYTE);
492 /*--- Router Management Reference - Router Administration Functions */
493 DWORD WINAPI MprAdminBufferFree(LPVOID);
494 DWORD WINAPI MprAdminDeregisterConnectionNotification(MPR_SERVER_HANDLE,HANDLE);
495 DWORD WINAPI MprAdminEstablishDomainRasServer(PWCHAR,PWCHAR,BOOL);
496 DWORD WINAPI MprAdminGetErrorString(DWORD,LPWSTR*);
497 DWORD WINAPI MprAdminInterfaceConnect(MPR_SERVER_HANDLE,HANDLE,HANDLE,BOOL);
498 DWORD WINAPI MprAdminInterfaceCreate(MPR_SERVER_HANDLE,DWORD,LPBYTE,HANDLE*);
499 DWORD WINAPI MprAdminInterfaceDelete(MPR_SERVER_HANDLE,HANDLE);
500 DWORD WINAPI MprAdminInterfaceDeviceGetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,DWORD,LPBYTE*);
501 DWORD WINAPI MprAdminInterfaceDeviceSetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,DWORD,LPBYTE);
502 DWORD WINAPI MprAdminInterfaceDisconnect(MPR_SERVER_HANDLE,HANDLE);
503 DWORD WINAPI MprAdminInterfaceEnum(MPR_SERVER_HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
504 DWORD WINAPI MprAdminInterfaceGetCredentials(LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR);
505 DWORD WINAPI MprAdminInterfaceGetHandle(MPR_SERVER_HANDLE,LPWSTR,HANDLE*,BOOL);
506 DWORD WINAPI MprAdminInterfaceGetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE*);
507 DWORD WINAPI MprAdminInterfaceQueryUpdateResult(MPR_SERVER_HANDLE,HANDLE,DWORD,LPDWORD);
508 DWORD WINAPI MprAdminInterfaceSetCredentials(LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR);
509 DWORD WINAPI MprAdminInterfaceSetCredentialsEx(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE);
510 DWORD WINAPI MprAdminInterfaceSetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE);
511 DWORD WINAPI MprAdminInterfaceTransportAdd(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE,DWORD);
512 DWORD WINAPI MprAdminInterfaceTransportGetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE*,LPDWORD);
513 DWORD WINAPI MprAdminInterfaceTransportRemove(MPR_SERVER_HANDLE,HANDLE,DWORD);
514 DWORD WINAPI MprAdminInterfaceTransportSetInfo(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE,DWORD);
515 DWORD WINAPI MprAdminInterfaceUpdatePhonebookInfo(MPR_SERVER_HANDLE,HANDLE);
516 DWORD WINAPI MprAdminInterfaceUpdateRoutes(MPR_SERVER_HANDLE,HANDLE,DWORD,HANDLE);
517 DWORD WINAPI MprAdminIsDomainRasServer(PWCHAR,PWCHAR,PBOOL);
518 BOOL WINAPI MprAdminIsServiceRunning(LPWSTR);
519 DWORD WINAPI MprAdminRegisterConnectionNotification(MPR_SERVER_HANDLE,HANDLE);
520 DWORD WINAPI MprAdminServerConnect(LPWSTR,MPR_SERVER_HANDLE*);
521 void WINAPI MprAdminServerDisconnect(MPR_SERVER_HANDLE);
522 DWORD WINAPI MprAdminServerGetCredentials(MPR_SERVER_HANDLE,DWORD,LPBYTE*);
523 DWORD WINAPI MprAdminInterfaceGetCredentialsEx(MPR_SERVER_HANDLE,HANDLE,DWORD,LPBYTE*);
524 DWORD WINAPI MprAdminServerGetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE*);
525 DWORD WINAPI MprAdminServerSetCredentials(MPR_SERVER_HANDLE,DWORD,LPBYTE);
526 DWORD WINAPI MprAdminServerSetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE);
527 DWORD WINAPI MprAdminTransportCreate(MPR_SERVER_HANDLE,DWORD,LPWSTR,LPBYTE,DWORD,LPBYTE,DWORD,LPWSTR);
528 DWORD WINAPI MprAdminTransportGetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE*,LPDWORD,LPBYTE*,LPDWORD);
529 DWORD WINAPI MprAdminTransportSetInfo(MPR_SERVER_HANDLE,DWORD,LPBYTE,DWORD,LPBYTE,DWORD);
530 /*--- Router Management Reference - Router Configuration Functions */
531 DWORD WINAPI MprConfigBufferFree(LPVOID);
532 DWORD WINAPI MprConfigGetFriendlyName(HANDLE,PWCHAR,PWCHAR,DWORD);
533 DWORD WINAPI MprConfigGetGuidName(HANDLE,PWCHAR,PWCHAR,DWORD);
534 DWORD WINAPI MprConfigInterfaceCreate(HANDLE,DWORD,LPBYTE,HANDLE*);
535 DWORD WINAPI MprConfigInterfaceDelete(HANDLE,HANDLE);
536 DWORD WINAPI MprConfigInterfaceEnum(HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
537 DWORD WINAPI MprConfigInterfaceGetHandle(HANDLE,LPWSTR,HANDLE*);
538 DWORD WINAPI MprConfigInterfaceGetInfo(HANDLE,HANDLE,DWORD,LPBYTE*,LPDWORD);
539 DWORD WINAPI MprConfigInterfaceSetInfo(HANDLE,HANDLE,DWORD,LPBYTE);
540 DWORD WINAPI MprConfigInterfaceTransportAdd(HANDLE,HANDLE,DWORD,LPWSTR,LPBYTE,DWORD,HANDLE*);
541 DWORD WINAPI MprConfigInterfaceTransportEnum(HANDLE,HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
542 DWORD WINAPI MprConfigInterfaceTransportGetHandle(HANDLE,HANDLE,DWORD,HANDLE*);
543 DWORD WINAPI MprConfigInterfaceTransportGetInfo(HANDLE,HANDLE,HANDLE,LPBYTE*,LPDWORD);
544 DWORD WINAPI MprConfigInterfaceTransportRemove(HANDLE,HANDLE,HANDLE);
545 DWORD WINAPI MprConfigInterfaceTransportSetInfo(HANDLE,HANDLE,HANDLE,LPBYTE,DWORD);
546 DWORD WINAPI MprConfigServerBackup(HANDLE,LPWSTR);
547 DWORD WINAPI MprConfigServerConnect(LPWSTR,HANDLE*);
548 void WINAPI MprConfigServerDisconnect(HANDLE);
549 DWORD WINAPI MprConfigServerGetInfo(HANDLE,DWORD,LPBYTE*);
550 DWORD WINAPI MprConfigServerInstall(DWORD,PVOID);
551 DWORD WINAPI MprConfigServerRestore(HANDLE,LPWSTR);
552 DWORD WINAPI MprConfigServerSetInfo(HANDLE,DWORD,LPBYTE);
553 DWORD WINAPI MprConfigTransportCreate(HANDLE,DWORD,LPWSTR,LPBYTE,DWORD,LPBYTE,DWORD,LPWSTR,HANDLE);
554 DWORD WINAPI MprConfigTransportDelete(HANDLE,HANDLE);
555 DWORD WINAPI MprConfigTransportEnum(HANDLE,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
556 DWORD WINAPI MprConfigTransportGetHandle(HANDLE,DWORD,HANDLE*);
557 DWORD WINAPI MprConfigTransportGetInfo(HANDLE,HANDLE,LPBYTE*,LPDWORD,LPBYTE*,LPDWORD,LPWSTR*);
558 DWORD WINAPI MprConfigTransportSetInfo(HANDLE,HANDLE,LPBYTE,DWORD,LPBYTE,DWORD,LPWSTR);
559 /*--- Router Management Reference - Information Header Functions */
560 DWORD WINAPI MprInfoBlockAdd(LPVOID,DWORD,DWORD,DWORD,LPBYTE,LPVOID*);
561 DWORD WINAPI MprInfoBlockFind(LPVOID,DWORD,LPDWORD,LPDWORD,LPBYTE*);
562 DWORD WINAPI MprInfoBlockQuerySize(LPVOID);
563 DWORD WINAPI MprInfoBlockRemove(LPVOID,DWORD,LPVOID*);
564 DWORD WINAPI MprInfoBlockSet(LPVOID,DWORD,DWORD,DWORD,LPBYTE,LPVOID*);
565 DWORD WINAPI MprInfoCreate(DWORD,LPVOID*);
566 DWORD WINAPI MprInfoDelete(LPVOID);
567 DWORD WINAPI MprInfoDuplicate(LPVOID,LPVOID*);
568 DWORD WINAPI MprInfoRemoveAll(LPVOID,LPVOID*);
569 /*--- Router Management MIB Reference - Router Management MIB Functions */
570 typedef HANDLE MIB_SERVER_HANDLE;
571 DWORD WINAPI MprAdminMIBBufferFree(LPVOID);
572 DWORD WINAPI MprAdminMIBEntryCreate(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD);
573 DWORD WINAPI MprAdminMIBEntryDelete(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD);
574 DWORD WINAPI MprAdminMIBEntryGet(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
575 DWORD WINAPI MprAdminMIBEntryGetFirst(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
576 DWORD WINAPI MprAdminMIBEntryGetNext(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
577 DWORD WINAPI MprAdminMIBEntrySet(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD);
578 DWORD WINAPI MprAdminMIBGetTrapInfo(MIB_SERVER_HANDLE,DWORD,DWORD,LPVOID,DWORD,LPVOID*,LPDWORD);
579 DWORD WINAPI MprAdminMIBServerConnect(LPWSTR,MIB_SERVER_HANDLE*);
580 void WINAPI MprAdminMIBServerDisconnect(MIB_SERVER_HANDLE);
581 DWORD WINAPI MprAdminMIBSetTrapInfo(DWORD,DWORD,HANDLE,LPVOID,DWORD,LPVOID*,LPDWORD);
582 #endif /* (_WIN32_WINNT >= 0x0500) */