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