| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef __ROUTING_MPRADMIN_H__ |
| #define __ROUTING_MPRADMIN_H__ |
| |
| #include <winapifamily.h> |
| |
| #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| |
| #include <lmcons.h> |
| #include <ras.h> |
| #include <in6addr.h> |
| #include <wincrypt.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef CALLBACK |
| #define CALLBACK WINAPI |
| #endif |
| |
| #define RRAS_SERVICE_NAME TEXT("RemoteAccess") |
| |
| #define PID_IPX 0x0000002B |
| #define PID_IP 0x00000021 |
| #define PID_NBF 0x0000003F |
| #define PID_ATALK 0x00000029 |
| |
| #define MAX_INTERFACE_NAME_LEN 256 |
| #define MAX_TRANSPORT_NAME_LEN 40 |
| #define MAX_MEDIA_NAME 16 |
| #define MAX_PORT_NAME 16 |
| #define MAX_DEVICE_NAME 128 |
| #define MAX_PHONE_NUMBER_LEN 128 |
| #define MAX_DEVICETYPE_NAME 16 |
| |
| typedef enum _ROUTER_INTERFACE_TYPE { |
| ROUTER_IF_TYPE_CLIENT,ROUTER_IF_TYPE_HOME_ROUTER,ROUTER_IF_TYPE_FULL_ROUTER,ROUTER_IF_TYPE_DEDICATED,ROUTER_IF_TYPE_INTERNAL, |
| ROUTER_IF_TYPE_LOOPBACK,ROUTER_IF_TYPE_TUNNEL1,ROUTER_IF_TYPE_DIALOUT |
| } ROUTER_INTERFACE_TYPE; |
| |
| typedef enum _ROUTER_CONNECTION_STATE { |
| ROUTER_IF_STATE_UNREACHABLE,ROUTER_IF_STATE_DISCONNECTED,ROUTER_IF_STATE_CONNECTING,ROUTER_IF_STATE_CONNECTED |
| } ROUTER_CONNECTION_STATE; |
| |
| #define MPR_INTERFACE_OUT_OF_RESOURCES 0x00000001 |
| #define MPR_INTERFACE_ADMIN_DISABLED 0x00000002 |
| #define MPR_INTERFACE_CONNECTION_FAILURE 0x00000004 |
| #define MPR_INTERFACE_SERVICE_PAUSED 0x00000008 |
| #define MPR_INTERFACE_DIALOUT_HOURS_RESTRICTION 0x00000010 |
| #define MPR_INTERFACE_NO_MEDIA_SENSE 0x00000020 |
| #define MPR_INTERFACE_NO_DEVICE 0x00000040 |
| |
| typedef struct _MPR_INTERFACE_0 { |
| WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1]; |
| HANDLE hInterface; |
| WINBOOL fEnabled; |
| ROUTER_INTERFACE_TYPE dwIfType; |
| ROUTER_CONNECTION_STATE dwConnectionState; |
| DWORD fUnReachabilityReasons; |
| DWORD dwLastError; |
| } MPR_INTERFACE_0,*PMPR_INTERFACE_0; |
| |
| typedef struct _MPR_IPINIP_INTERFACE_0 { |
| WCHAR wszFriendlyName[MAX_INTERFACE_NAME_LEN+1]; |
| GUID Guid; |
| } MPR_IPINIP_INTERFACE_0,*PMPR_IPINIP_INTERFACE_0; |
| |
| typedef struct _MPR_INTERFACE_1 { |
| WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1]; |
| HANDLE hInterface; |
| WINBOOL fEnabled; |
| ROUTER_INTERFACE_TYPE dwIfType; |
| ROUTER_CONNECTION_STATE dwConnectionState; |
| DWORD fUnReachabilityReasons; |
| DWORD dwLastError; |
| LPWSTR lpwsDialoutHoursRestriction; |
| |
| } MPR_INTERFACE_1,*PMPR_INTERFACE_1; |
| |
| #define MPR_MaxDeviceType RAS_MaxDeviceType |
| #define MPR_MaxPhoneNumber RAS_MaxPhoneNumber |
| #define MPR_MaxIpAddress RAS_MaxIpAddress |
| #define MPR_MaxIpxAddress RAS_MaxIpxAddress |
| |
| #define MPR_MaxEntryName RAS_MaxEntryName |
| #define MPR_MaxDeviceName RAS_MaxDeviceName |
| #define MPR_MaxCallbackNumber RAS_MaxCallbackNumber |
| |
| #define MPR_MaxAreaCode RAS_MaxAreaCode |
| #define MPR_MaxPadType RAS_MaxPadType |
| #define MPR_MaxX25Address RAS_MaxX25Address |
| #define MPR_MaxFacilities RAS_MaxFacilities |
| #define MPR_MaxUserData RAS_MaxUserData |
| |
| #define MPRIO_SpecificIpAddr RASEO_SpecificIpAddr |
| #define MPRIO_SpecificNameServers RASEO_SpecificNameServers |
| #define MPRIO_IpHeaderCompression RASEO_IpHeaderCompression |
| #define MPRIO_RemoteDefaultGateway RASEO_RemoteDefaultGateway |
| #define MPRIO_DisableLcpExtensions RASEO_DisableLcpExtensions |
| #define MPRIO_SwCompression RASEO_SwCompression |
| #define MPRIO_RequireEncryptedPw RASEO_RequireEncryptedPw |
| #define MPRIO_RequireMsEncryptedPw RASEO_RequireMsEncryptedPw |
| #define MPRIO_RequireDataEncryption RASEO_RequireDataEncryption |
| #define MPRIO_NetworkLogon RASEO_NetworkLogon |
| #define MPRIO_PromoteAlternates RASEO_PromoteAlternates |
| #define MPRIO_SecureLocalFiles RASEO_SecureLocalFiles |
| #define MPRIO_RequireEAP RASEO_RequireEAP |
| #define MPRIO_RequirePAP RASEO_RequirePAP |
| #define MPRIO_RequireSPAP RASEO_RequireSPAP |
| #define MPRIO_SharedPhoneNumbers RASEO_SharedPhoneNumbers |
| #define MPRIO_RequireCHAP RASEO_RequireCHAP |
| #define MPRIO_RequireMsCHAP RASEO_RequireMsCHAP |
| #define MPRIO_RequireMsCHAP2 RASEO_RequireMsCHAP2 |
| #define MPRIO_IpSecPreSharedKey 0x80000000 |
| |
| #define MPRNP_Ipx RASNP_Ipx |
| #define MPRNP_Ip RASNP_Ip |
| |
| #define MPRDT_Modem RASDT_Modem |
| #define MPRDT_Isdn RASDT_Isdn |
| #define MPRDT_X25 RASDT_X25 |
| #define MPRDT_Vpn RASDT_Vpn |
| #define MPRDT_Pad RASDT_Pad |
| #define MPRDT_Generic RASDT_Generic |
| #define MPRDT_Serial RASDT_Serial |
| #define MPRDT_FrameRelay RASDT_FrameRelay |
| #define MPRDT_Atm RASDT_Atm |
| #define MPRDT_Sonet RASDT_Sonet |
| #define MPRDT_SW56 RASDT_SW56 |
| #define MPRDT_Irda RASDT_Irda |
| #define MPRDT_Parallel RASDT_Parallel |
| |
| #define MPRET_Phone RASET_Phone |
| #define MPRET_Vpn RASET_Vpn |
| #define MPRET_Direct RASET_Direct |
| |
| #define MPRDM_DialFirst 0 |
| #define MPRDM_DialAll RASEDM_DialAll |
| #define MPRDM_DialAsNeeded RASEDM_DialAsNeeded |
| |
| #define MPRIDS_Disabled RASIDS_Disabled |
| #define MPRIDS_UseGlobalValue RASIDS_UseGlobalValue |
| |
| #define MPR_ET_None ET_None |
| #define MPR_ET_Require ET_Require |
| #define MPR_ET_RequireMax ET_RequireMax |
| #define MPR_ET_Optional ET_Optional |
| |
| #define MPR_VS_Default VS_Default |
| #define MPR_VS_PptpOnly VS_PptpOnly |
| #define MPR_VS_PptpFirst VS_PptpFirst |
| #define MPR_VS_L2tpOnly VS_L2tpOnly |
| #define MPR_VS_L2tpFirst VS_L2tpFirst |
| |
| typedef struct _MPR_INTERFACE_2 { |
| WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1]; |
| HANDLE hInterface; |
| WINBOOL fEnabled; |
| ROUTER_INTERFACE_TYPE dwIfType; |
| ROUTER_CONNECTION_STATE dwConnectionState; |
| DWORD fUnReachabilityReasons; |
| DWORD dwLastError; |
| DWORD dwfOptions; |
| WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1 ]; |
| PWCHAR szAlternates; |
| DWORD ipaddr; |
| DWORD ipaddrDns; |
| DWORD ipaddrDnsAlt; |
| DWORD ipaddrWins; |
| DWORD ipaddrWinsAlt; |
| DWORD dwfNetProtocols; |
| WCHAR szDeviceType[MPR_MaxDeviceType + 1 ]; |
| WCHAR szDeviceName[MPR_MaxDeviceName + 1 ]; |
| WCHAR szX25PadType[MPR_MaxPadType + 1 ]; |
| WCHAR szX25Address[MPR_MaxX25Address + 1 ]; |
| WCHAR szX25Facilities[MPR_MaxFacilities + 1 ]; |
| WCHAR szX25UserData[MPR_MaxUserData + 1 ]; |
| DWORD dwChannels; |
| DWORD dwSubEntries; |
| DWORD dwDialMode; |
| DWORD dwDialExtraPercent; |
| DWORD dwDialExtraSampleSeconds; |
| DWORD dwHangUpExtraPercent; |
| DWORD dwHangUpExtraSampleSeconds; |
| DWORD dwIdleDisconnectSeconds; |
| DWORD dwType; |
| DWORD dwEncryptionType; |
| DWORD dwCustomAuthKey; |
| DWORD dwCustomAuthDataSize; |
| LPBYTE lpbCustomAuthData; |
| GUID guidId; |
| DWORD dwVpnStrategy; |
| } MPR_INTERFACE_2,*PMPR_INTERFACE_2; |
| |
| #if (_WIN32_WINNT >= 0x0600) |
| typedef struct _MPR_INTERFACE_3 { |
| WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1]; |
| HANDLE hInterface; |
| WINBOOL fEnabled; |
| ROUTER_INTERFACE_TYPE dwIfType; |
| ROUTER_CONNECTION_STATE dwConnectionState; |
| DWORD fUnReachabilityReasons; |
| DWORD dwLastError; |
| DWORD dwfOptions; |
| WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; |
| PWCHAR szAlternates; |
| DWORD ipaddr; |
| DWORD ipaddrDns; |
| DWORD ipaddrDnsAlt; |
| DWORD ipaddrWins; |
| DWORD ipaddrWinsAlt; |
| DWORD dwfNetProtocols; |
| WCHAR szDeviceType[MPR_MaxDeviceType + 1]; |
| WCHAR szDeviceName[MPR_MaxDeviceName + 1]; |
| WCHAR szX25PadType[MPR_MaxPadType + 1]; |
| WCHAR szX25Address[MPR_MaxX25Address + 1]; |
| WCHAR szX25Facilities[MPR_MaxFacilities + 1]; |
| WCHAR szX25UserData[MPR_MaxUserData + 1]; |
| DWORD dwChannels; |
| DWORD dwSubEntries; |
| DWORD dwDialMode; |
| DWORD dwDialExtraPercent; |
| DWORD dwDialExtraSampleSeconds; |
| DWORD dwHangUpExtraPercent; |
| DWORD dwHangUpExtraSampleSeconds; |
| DWORD dwIdleDisconnectSeconds; |
| DWORD dwType; |
| DWORD dwEncryptionType; |
| DWORD dwCustomAuthKey; |
| DWORD dwCustomAuthDataSize; |
| LPBYTE lpbCustomAuthData; |
| GUID guidId; |
| DWORD dwVpnStrategy; |
| ULONG AddressCount; |
| IN6_ADDR ipv6addrDns; |
| IN6_ADDR ipv6addrDnsAlt; |
| IN6_ADDR * ipv6addr; |
| } MPR_INTERFACE_3, *PMPR_INTERFACE_3; |
| #endif |
| |
| typedef struct _MPR_DEVICE_0 { |
| WCHAR szDeviceType[MPR_MaxDeviceType + 1 ]; |
| WCHAR szDeviceName[MPR_MaxDeviceName + 1 ]; |
| } MPR_DEVICE_0,*PMPR_DEVICE_0; |
| |
| typedef struct _MPR_DEVICE_1 { |
| WCHAR szDeviceType[MPR_MaxDeviceType + 1 ]; |
| WCHAR szDeviceName[MPR_MaxDeviceName + 1 ]; |
| WCHAR szLocalPhoneNumber[MPR_MaxPhoneNumber + 1 ]; |
| PWCHAR szAlternates; |
| } MPR_DEVICE_1,*PMPR_DEVICE_1; |
| |
| typedef struct _MPR_CREDENTIALSEX_0 { |
| DWORD dwSize; |
| LPBYTE lpbCredentialsInfo; |
| } MPR_CREDENTIALSEX_0,*PMPR_CREDENTIALSEX_0; |
| |
| typedef struct _MPR_CREDENTIALSEX_1 { |
| DWORD dwSize; |
| LPBYTE lpbCredentialsInfo; |
| } MPR_CREDENTIALSEX_1,*PMPR_CREDENTIALSEX_1; |
| |
| typedef struct _MPR_TRANSPORT_0 { |
| DWORD dwTransportId; |
| HANDLE hTransport; |
| WCHAR wszTransportName[MAX_TRANSPORT_NAME_LEN+1]; |
| } MPR_TRANSPORT_0,*PMPR_TRANSPORT_0; |
| |
| typedef struct _MPR_IFTRANSPORT_0 |
| { |
| DWORD dwTransportId; |
| HANDLE hIfTransport; |
| WCHAR wszIfTransportName[MAX_TRANSPORT_NAME_LEN+1]; |
| |
| } |
| MPR_IFTRANSPORT_0,*PMPR_IFTRANSPORT_0; |
| |
| typedef struct _MPR_SERVER_0 |
| { |
| WINBOOL fLanOnlyMode; |
| DWORD dwUpTime; |
| DWORD dwTotalPorts; |
| DWORD dwPortsInUse; |
| |
| } |
| MPR_SERVER_0,*PMPR_SERVER_0; |
| |
| #define MPR_ENABLE_RAS_ON_DEVICE 0x00000001 |
| #define MPR_ENABLE_ROUTING_ON_DEVICE 0x00000002 |
| |
| typedef struct _MPR_SERVER_1 { |
| DWORD dwNumPptpPorts; |
| DWORD dwPptpPortFlags; |
| DWORD dwNumL2tpPorts; |
| DWORD dwL2tpPortFlags; |
| } MPR_SERVER_1,*PMPR_SERVER_1; |
| |
| typedef enum _RAS_PORT_CONDITION { |
| RAS_PORT_NON_OPERATIONAL,RAS_PORT_DISCONNECTED,RAS_PORT_CALLING_BACK,RAS_PORT_LISTENING,RAS_PORT_AUTHENTICATING,RAS_PORT_AUTHENTICATED, |
| RAS_PORT_INITIALIZING |
| } RAS_PORT_CONDITION; |
| |
| typedef enum _RAS_HARDWARE_CONDITION { |
| RAS_HARDWARE_OPERATIONAL,RAS_HARDWARE_FAILURE |
| } RAS_HARDWARE_CONDITION; |
| |
| typedef struct _RAS_PORT_0 { |
| HANDLE hPort; |
| HANDLE hConnection; |
| RAS_PORT_CONDITION dwPortCondition; |
| DWORD dwTotalNumberOfCalls; |
| DWORD dwConnectDuration; |
| WCHAR wszPortName[MAX_PORT_NAME + 1 ]; |
| WCHAR wszMediaName[MAX_MEDIA_NAME + 1 ]; |
| WCHAR wszDeviceName[MAX_DEVICE_NAME + 1 ]; |
| WCHAR wszDeviceType[MAX_DEVICETYPE_NAME + 1 ]; |
| } RAS_PORT_0,*PRAS_PORT_0; |
| |
| typedef struct _RAS_PORT_1 { |
| HANDLE hPort; |
| HANDLE hConnection; |
| RAS_HARDWARE_CONDITION dwHardwareCondition; |
| DWORD dwLineSpeed; |
| DWORD dwBytesXmited; |
| DWORD dwBytesRcved; |
| DWORD dwFramesXmited; |
| DWORD dwFramesRcved; |
| DWORD dwCrcErr; |
| DWORD dwTimeoutErr; |
| DWORD dwAlignmentErr; |
| DWORD dwHardwareOverrunErr; |
| DWORD dwFramingErr; |
| DWORD dwBufferOverrunErr; |
| DWORD dwCompressionRatioIn; |
| DWORD dwCompressionRatioOut; |
| } RAS_PORT_1,*PRAS_PORT_1; |
| |
| #define IPADDRESSLEN 15 |
| #define IPXADDRESSLEN 22 |
| #define ATADDRESSLEN 32 |
| #define MAXIPADRESSLEN 64 |
| |
| typedef struct _PPP_NBFCP_INFO { |
| DWORD dwError; |
| WCHAR wszWksta[NETBIOS_NAME_LEN + 1 ]; |
| } PPP_NBFCP_INFO; |
| |
| typedef struct _PPP_IPCP_INFO { |
| DWORD dwError; |
| WCHAR wszAddress[IPADDRESSLEN + 1 ]; |
| WCHAR wszRemoteAddress[IPADDRESSLEN + 1 ]; |
| } PPP_IPCP_INFO; |
| |
| #define PPP_IPCP_VJ 0x00000001 |
| |
| typedef struct _PPP_IPCP_INFO2 { |
| DWORD dwError; |
| WCHAR wszAddress[IPADDRESSLEN + 1 ]; |
| WCHAR wszRemoteAddress[IPADDRESSLEN + 1 ]; |
| DWORD dwOptions; |
| DWORD dwRemoteOptions; |
| } PPP_IPCP_INFO2; |
| |
| typedef struct _PPP_IPXCP_INFO { |
| DWORD dwError; |
| WCHAR wszAddress[IPXADDRESSLEN + 1 ]; |
| } PPP_IPXCP_INFO; |
| |
| typedef struct _PPP_ATCP_INFO { |
| DWORD dwError; |
| WCHAR wszAddress[ATADDRESSLEN + 1 ]; |
| } PPP_ATCP_INFO; |
| |
| typedef struct _PPP_INFO { |
| PPP_NBFCP_INFO nbf; |
| PPP_IPCP_INFO ip; |
| PPP_IPXCP_INFO ipx; |
| PPP_ATCP_INFO at; |
| } PPP_INFO; |
| |
| #define RASCCPCA_MPPC 0x00000006 |
| #define RASCCPCA_STAC 0x00000005 |
| |
| #define PPP_CCP_COMPRESSION 0x00000001 |
| #define PPP_CCP_ENCRYPTION40BITOLD 0x00000010 |
| #define PPP_CCP_ENCRYPTION40BIT 0x00000020 |
| #define PPP_CCP_ENCRYPTION128BIT 0x00000040 |
| #define PPP_CCP_ENCRYPTION56BIT 0x00000080 |
| #define PPP_CCP_HISTORYLESS 0x01000000 |
| |
| typedef struct _PPP_CCP_INFO { |
| DWORD dwError; |
| DWORD dwCompressionAlgorithm; |
| DWORD dwOptions; |
| DWORD dwRemoteCompressionAlgorithm; |
| DWORD dwRemoteOptions; |
| } PPP_CCP_INFO; |
| |
| #define PPP_LCP_PAP 0xC023 |
| #define PPP_LCP_SPAP 0xC027 |
| #define PPP_LCP_CHAP 0xC223 |
| #define PPP_LCP_EAP 0xC227 |
| |
| #define PPP_LCP_CHAP_MD5 0x05 |
| #define PPP_LCP_CHAP_MS 0x80 |
| #define PPP_LCP_CHAP_MSV2 0x81 |
| |
| #define PPP_LCP_MULTILINK_FRAMING 0x00000001 |
| #define PPP_LCP_PFC 0x00000002 |
| #define PPP_LCP_ACFC 0x00000004 |
| #define PPP_LCP_SSHF 0x00000008 |
| #define PPP_LCP_DES_56 0x00000010 |
| #define PPP_LCP_3_DES 0x00000020 |
| |
| typedef struct _PPP_LCP_INFO { |
| DWORD dwError; |
| DWORD dwAuthenticationProtocol; |
| DWORD dwAuthenticationData; |
| DWORD dwRemoteAuthenticationProtocol; |
| DWORD dwRemoteAuthenticationData; |
| DWORD dwTerminateReason; |
| DWORD dwRemoteTerminateReason; |
| DWORD dwOptions; |
| DWORD dwRemoteOptions; |
| DWORD dwEapTypeId; |
| DWORD dwRemoteEapTypeId; |
| } PPP_LCP_INFO; |
| |
| typedef struct _PPP_INFO_2 { |
| PPP_NBFCP_INFO nbf; |
| PPP_IPCP_INFO2 ip; |
| PPP_IPXCP_INFO ipx; |
| PPP_ATCP_INFO at; |
| PPP_CCP_INFO ccp; |
| PPP_LCP_INFO lcp; |
| } PPP_INFO_2; |
| |
| #define RAS_FLAGS_PPP_CONNECTION 0x00000001 |
| #define RAS_FLAGS_MESSENGER_PRESENT 0x00000002 |
| #define RAS_FLAGS_QUARANTINE_PRESENT 0x00000008 |
| |
| typedef struct _RAS_CONNECTION_0 { |
| HANDLE hConnection; |
| HANDLE hInterface; |
| DWORD dwConnectDuration; |
| ROUTER_INTERFACE_TYPE dwInterfaceType; |
| DWORD dwConnectionFlags; |
| WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1 ]; |
| WCHAR wszUserName[UNLEN + 1 ]; |
| WCHAR wszLogonDomain[DNLEN + 1 ]; |
| WCHAR wszRemoteComputer[NETBIOS_NAME_LEN + 1 ]; |
| } RAS_CONNECTION_0,*PRAS_CONNECTION_0; |
| |
| typedef struct _RAS_CONNECTION_1 { |
| HANDLE hConnection; |
| HANDLE hInterface; |
| PPP_INFO PppInfo; |
| DWORD dwBytesXmited; |
| DWORD dwBytesRcved; |
| DWORD dwFramesXmited; |
| DWORD dwFramesRcved; |
| DWORD dwCrcErr; |
| DWORD dwTimeoutErr; |
| DWORD dwAlignmentErr; |
| DWORD dwHardwareOverrunErr; |
| DWORD dwFramingErr; |
| DWORD dwBufferOverrunErr; |
| DWORD dwCompressionRatioIn; |
| DWORD dwCompressionRatioOut; |
| } RAS_CONNECTION_1,*PRAS_CONNECTION_1; |
| |
| typedef struct _RAS_CONNECTION_2 { |
| HANDLE hConnection; |
| WCHAR wszUserName[UNLEN + 1 ]; |
| ROUTER_INTERFACE_TYPE dwInterfaceType; |
| GUID guid; |
| PPP_INFO_2 PppInfo2; |
| } RAS_CONNECTION_2,*PRAS_CONNECTION_2; |
| |
| #define RASPRIV_NoCallback 0x01 |
| #define RASPRIV_AdminSetCallback 0x02 |
| #define RASPRIV_CallerSetCallback 0x04 |
| #define RASPRIV_DialinPrivilege 0x08 |
| |
| #define RASPRIV2_DialinPolicy 0x1 |
| |
| #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback | RASPRIV_CallerSetCallback | RASPRIV_NoCallback) |
| |
| typedef struct _RAS_USER_0 { |
| BYTE bfPrivilege; |
| WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN + 1]; |
| } RAS_USER_0,*PRAS_USER_0; |
| |
| typedef struct _RAS_USER_1 { |
| BYTE bfPrivilege; |
| WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN + 1]; |
| BYTE bfPrivilege2; |
| } RAS_USER_1,*PRAS_USER_1; |
| |
| typedef HANDLE RAS_SERVER_HANDLE; |
| typedef HANDLE MPR_SERVER_HANDLE; |
| typedef HANDLE MIB_SERVER_HANDLE; |
| |
| DWORD WINAPI MprAdminConnectionEnum(RAS_SERVER_HANDLE hRasServer,DWORD dwLevel,LPBYTE *lplpbBuffer,DWORD dwPrefMaxLen,LPDWORD lpdwEntriesRead,LPDWORD lpdwTotalEntries,LPDWORD lpdwResumeHandle); |
| DWORD WINAPI MprAdminPortEnum(RAS_SERVER_HANDLE hRasServer,DWORD dwLevel,HANDLE hConnection,LPBYTE *lplpbBuffer,DWORD dwPrefMaxLen,LPDWORD lpdwEntriesRead,LPDWORD lpdwTotalEntries,LPDWORD lpdwResumeHandle); |
| DWORD WINAPI MprAdminConnectionGetInfo(RAS_SERVER_HANDLE hRasServer,DWORD dwLevel,HANDLE hConnection,LPBYTE *lplpbBuffer); |
| DWORD WINAPI MprAdminPortGetInfo(RAS_SERVER_HANDLE hRasServer,DWORD dwLevel,HANDLE hPort,LPBYTE *lplpbBuffer); |
| DWORD WINAPI MprAdminConnectionClearStats(RAS_SERVER_HANDLE hRasServer,HANDLE hConnection); |
| DWORD WINAPI MprAdminPortClearStats(RAS_SERVER_HANDLE hRasServer,HANDLE hPort); |
| DWORD WINAPI MprAdminPortReset(RAS_SERVER_HANDLE hRasServer,HANDLE hPort); |
| DWORD WINAPI MprAdminPortDisconnect(RAS_SERVER_HANDLE hRasServer,HANDLE hPort); |
| WINBOOL WINAPI MprAdminAcceptNewConnection(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1); |
| WINBOOL WINAPI MprAdminAcceptNewConnection2(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1,RAS_CONNECTION_2 *pRasConnection2); |
| WINBOOL WINAPI MprAdminAcceptNewLink (RAS_PORT_0 *pRasPort0,RAS_PORT_1 *pRasPort1); |
| VOID WINAPI MprAdminConnectionHangupNotification(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1); |
| VOID WINAPI MprAdminConnectionHangupNotification2(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1,RAS_CONNECTION_2 *pRasConnection2); |
| DWORD WINAPI MprAdminConnectionRemoveQuarantine(HANDLE hRasServer,HANDLE hRasConnection,WINBOOL fIsIpAddress); |
| VOID WINAPI MprAdminLinkHangupNotification (RAS_PORT_0 *pRasPort0,RAS_PORT_1 *pRasPort1); |
| DWORD WINAPI MprAdminGetIpAddressForUser (WCHAR *lpwszUserName,WCHAR *lpwszPortName,DWORD *lpdwIpAddress,WINBOOL *bNotifyRelease); |
| VOID WINAPI MprAdminReleaseIpAddress (WCHAR *lpszUserName,WCHAR *lpszPortName,DWORD *lpdwIpAddress); |
| DWORD WINAPI MprAdminInitializeDll(VOID); |
| DWORD WINAPI MprAdminTerminateDll(VOID); |
| DWORD WINAPI MprAdminUserGetInfo(const WCHAR *lpszServer,const WCHAR *lpszUser,DWORD dwLevel,LPBYTE lpbBuffer); |
| DWORD WINAPI MprAdminUserSetInfo(const WCHAR *lpszServer,const WCHAR *lpszUser,DWORD dwLevel,const LPBYTE lpbBuffer); |
| DWORD WINAPI MprAdminSendUserMessage(MPR_SERVER_HANDLE hMprServer,HANDLE hConnection,LPWSTR lpwszMessage); |
| DWORD WINAPI MprAdminGetPDCServer(const WCHAR *lpszDomain,const WCHAR *lpszServer,LPWSTR lpszPDCServer); |
| WINBOOL WINAPI MprAdminIsServiceRunning(LPWSTR lpwsServerName); |
| DWORD WINAPI MprAdminServerConnect(LPWSTR lpwsServerName,MPR_SERVER_HANDLE *phMprServer); |
| VOID WINAPI MprAdminServerDisconnect(MPR_SERVER_HANDLE hMprServer); |
| DWORD WINAPI MprAdminServerGetCredentials(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE *lplpbBuffer); |
| DWORD WINAPI MprAdminServerSetCredentials(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE lpbBuffer); |
| DWORD WINAPI MprAdminBufferFree(LPVOID pBuffer); |
| DWORD WINAPI MprAdminGetErrorString(DWORD dwError,LPWSTR *lpwsErrorString); |
| DWORD WINAPI MprAdminServerGetInfo(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE *lplpbBuffer); |
| DWORD WINAPI MprAdminServerSetInfo(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE lpbBuffer); |
| DWORD WINAPI MprAdminEstablishDomainRasServer (PWCHAR pszDomain,PWCHAR pszMachine,WINBOOL bEnable); |
| DWORD WINAPI MprAdminIsDomainRasServer (PWCHAR pszDomain,PWCHAR pszMachine,PBOOL pbIsRasServer); |
| DWORD WINAPI MprAdminTransportCreate(MPR_SERVER_HANDLE hMprServer,DWORD dwTransportId,LPWSTR lpwsTransportName,LPBYTE pGlobalInfo,DWORD dwGlobalInfoSize,LPBYTE pClientInterfaceInfo,DWORD dwClientInterfaceInfoSize,LPWSTR lpwsDLLPath); |
| DWORD WINAPI MprAdminTransportSetInfo(MPR_SERVER_HANDLE hMprServer,DWORD dwTransportId,LPBYTE pGlobalInfo,DWORD dwGlobalInfoSize,LPBYTE pClientInterfaceInfo,DWORD dwClientInterfaceInfoSize); |
| DWORD WINAPI MprAdminTransportGetInfo(MPR_SERVER_HANDLE hMprServer,DWORD dwTransportId,LPBYTE *ppGlobalInfo,LPDWORD lpdwGlobalInfoSize,LPBYTE *ppClientInterfaceInfo,LPDWORD lpdwClientInterfaceInfoSize); |
| DWORD WINAPI MprAdminDeviceEnum(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE *lplpbBuffer,LPDWORD lpdwTotalEntries); |
| DWORD WINAPI MprAdminInterfaceGetHandle(MPR_SERVER_HANDLE hMprServer,LPWSTR lpwsInterfaceName,HANDLE *phInterface,WINBOOL fIncludeClientInterfaces); |
| DWORD WINAPI MprAdminInterfaceCreate(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE lpbBuffer,HANDLE *phInterface); |
| DWORD WINAPI MprAdminInterfaceGetInfo(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwLevel,LPBYTE *lplpbBuffer); |
| DWORD WINAPI MprAdminInterfaceSetInfo(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwLevel,LPBYTE lpbBuffer); |
| DWORD WINAPI MprAdminInterfaceDelete(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface); |
| DWORD WINAPI MprAdminInterfaceDeviceGetInfo(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwIndex,DWORD dwLevel,LPBYTE *lplpBuffer); |
| DWORD WINAPI MprAdminInterfaceDeviceSetInfo(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwIndex,DWORD dwLevel,LPBYTE lplpBuffer); |
| DWORD WINAPI MprAdminInterfaceTransportRemove(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwTransportId); |
| DWORD WINAPI MprAdminInterfaceTransportAdd(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwTransportId,LPBYTE pInterfaceInfo,DWORD dwInterfaceInfoSize); |
| DWORD WINAPI MprAdminInterfaceTransportGetInfo(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwTransportId,LPBYTE *ppInterfaceInfo,LPDWORD lpdwpInterfaceInfoSize); |
| DWORD WINAPI MprAdminInterfaceTransportSetInfo(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwTransportId,LPBYTE pInterfaceInfo,DWORD dwInterfaceInfoSize); |
| DWORD WINAPI MprAdminInterfaceEnum(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE *lplpbBuffer,DWORD dwPrefMaxLen,LPDWORD lpdwEntriesRead,LPDWORD lpdwTotalEntries,LPDWORD lpdwResumeHandle); |
| DWORD WINAPI MprSetupIpInIpInterfaceFriendlyNameEnum(PWCHAR pwszMachineName,LPBYTE *lplpBuffer,LPDWORD lpdwEntriesRead); |
| DWORD WINAPI MprSetupIpInIpInterfaceFriendlyNameFree(LPVOID lpBuffer); |
| DWORD WINAPI MprSetupIpInIpInterfaceFriendlyNameCreate(PWCHAR pwszMachineName,PMPR_IPINIP_INTERFACE_0 pNameInformation); |
| DWORD WINAPI MprSetupIpInIpInterfaceFriendlyNameDelete(PWCHAR pwszMachineName,GUID *pGuid); |
| DWORD WINAPI MprAdminInterfaceSetCredentials(LPWSTR lpwsServer,LPWSTR lpwsInterfaceName,LPWSTR lpwsUserName,LPWSTR lpwsDomainName,LPWSTR lpwsPassword); |
| DWORD WINAPI MprAdminInterfaceGetCredentials(LPWSTR lpwsServer,LPWSTR lpwsInterfaceName,LPWSTR lpwsUserName,LPWSTR lpwsPassword,LPWSTR lpwsDomainName); |
| DWORD WINAPI MprAdminInterfaceSetCredentialsEx(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwLevel,LPBYTE lpbBuffer); |
| DWORD WINAPI MprAdminInterfaceGetCredentialsEx(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwLevel,LPBYTE *lplpbBuffer); |
| DWORD WINAPI MprAdminInterfaceConnect(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,HANDLE hEvent,WINBOOL fSynchronous); |
| DWORD WINAPI MprAdminInterfaceDisconnect(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface); |
| DWORD WINAPI MprAdminInterfaceUpdateRoutes(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwProtocolId,HANDLE hEvent); |
| DWORD WINAPI MprAdminInterfaceQueryUpdateResult(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface,DWORD dwProtocolId,LPDWORD lpdwUpdateResult); |
| DWORD WINAPI MprAdminInterfaceUpdatePhonebookInfo(MPR_SERVER_HANDLE hMprServer,HANDLE hInterface); |
| DWORD WINAPI MprAdminRegisterConnectionNotification(MPR_SERVER_HANDLE hMprServer,HANDLE hEventNotification); |
| DWORD WINAPI MprAdminDeregisterConnectionNotification(MPR_SERVER_HANDLE hMprServer,HANDLE hEventNotification); |
| DWORD WINAPI MprAdminMIBServerConnect(LPWSTR lpwsServerName,MIB_SERVER_HANDLE *phMibServer); |
| VOID WINAPI MprAdminMIBServerDisconnect(MIB_SERVER_HANDLE hMibServer); |
| DWORD WINAPI MprAdminMIBEntryCreate(MIB_SERVER_HANDLE hMibServer,DWORD dwPid,DWORD dwRoutingPid,LPVOID lpEntry,DWORD dwEntrySize); |
| DWORD WINAPI MprAdminMIBEntryDelete(MIB_SERVER_HANDLE hMibServer,DWORD dwProtocolId,DWORD dwRoutingPid,LPVOID lpEntry,DWORD dwEntrySize); |
| DWORD WINAPI MprAdminMIBEntrySet(MIB_SERVER_HANDLE hMibServer,DWORD dwProtocolId,DWORD dwRoutingPid,LPVOID lpEntry,DWORD dwEntrySize); |
| DWORD WINAPI MprAdminMIBEntryGet(MIB_SERVER_HANDLE hMibServer,DWORD dwProtocolId,DWORD dwRoutingPid,LPVOID lpInEntry,DWORD dwInEntrySize,LPVOID *lplpOutEntry,LPDWORD lpOutEntrySize); |
| DWORD WINAPI MprAdminMIBEntryGetFirst(MIB_SERVER_HANDLE hMibServer,DWORD dwProtocolId,DWORD dwRoutingPid,LPVOID lpInEntry,DWORD dwInEntrySize,LPVOID *lplpOutEntry,LPDWORD lpOutEntrySize); |
| DWORD WINAPI MprAdminMIBEntryGetNext(MIB_SERVER_HANDLE hMibServer,DWORD dwProtocolId,DWORD dwRoutingPid,LPVOID lpInEntry,DWORD dwInEntrySize,LPVOID *lplpOutEntry,LPDWORD lpOutEntrySize); |
| DWORD WINAPI MprAdminMIBGetTrapInfo(MIB_SERVER_HANDLE hMibServer,DWORD dwProtocolId,DWORD dwRoutingPid,LPVOID lpInData,DWORD dwInDataSize,LPVOID *lplpOutData,LPDWORD lpOutDataSize); |
| DWORD WINAPI MprAdminMIBSetTrapInfo(DWORD dwProtocolId,DWORD dwRoutingPid,HANDLE hEvent,LPVOID lpInData,DWORD dwInDataSize,LPVOID *lplpOutData,LPDWORD lpOutDataSize); |
| DWORD WINAPI MprAdminMIBBufferFree(LPVOID pBuffer); |
| DWORD WINAPI MprConfigServerInstall(DWORD dwLevel,PVOID pBuffer); |
| DWORD WINAPI MprConfigServerConnect(LPWSTR lpwsServerName,HANDLE *phMprConfig); |
| VOID WINAPI MprConfigServerDisconnect(HANDLE hMprConfig); |
| DWORD WINAPI MprConfigServerRefresh(HANDLE hMprConfig); |
| DWORD WINAPI MprConfigBufferFree(LPVOID pBuffer); |
| DWORD WINAPI MprConfigServerGetInfo(HANDLE hMprConfig,DWORD dwLevel,LPBYTE *lplpbBuffer); |
| DWORD WINAPI MprConfigServerSetInfo(MPR_SERVER_HANDLE hMprServer,DWORD dwLevel,LPBYTE lpbBuffer); |
| DWORD WINAPI MprConfigServerBackup(HANDLE hMprConfig,LPWSTR lpwsPath); |
| DWORD WINAPI MprConfigServerRestore(HANDLE hMprConfig,LPWSTR lpwsPath); |
| DWORD WINAPI MprConfigTransportCreate(HANDLE hMprConfig,DWORD dwTransportId,LPWSTR lpwsTransportName,LPBYTE pGlobalInfo,DWORD dwGlobalInfoSize,LPBYTE pClientInterfaceInfo,DWORD dwClientInterfaceInfoSize,LPWSTR lpwsDLLPath,HANDLE *phRouterTransport); |
| DWORD WINAPI MprConfigTransportDelete(HANDLE hMprConfig,HANDLE hRouterTransport); |
| DWORD WINAPI MprConfigTransportGetHandle(HANDLE hMprConfig,DWORD dwTransportId,HANDLE *phRouterTransport); |
| DWORD WINAPI MprConfigTransportSetInfo(HANDLE hMprConfig,HANDLE hRouterTransport,LPBYTE pGlobalInfo,DWORD dwGlobalInfoSize,LPBYTE pClientInterfaceInfo,DWORD dwClientInterfaceInfoSize,LPWSTR lpwsDLLPath); |
| DWORD WINAPI MprConfigTransportGetInfo(HANDLE hMprConfig,HANDLE hRouterTransport,LPBYTE *ppGlobalInfo,LPDWORD lpdwGlobalInfoSize,LPBYTE *ppClientInterfaceInfo,LPDWORD lpdwClientInterfaceInfoSize,LPWSTR *lplpwsDLLPath); |
| DWORD WINAPI MprConfigTransportEnum(HANDLE hMprConfig,DWORD dwLevel,LPBYTE *lplpBuffer,DWORD dwPrefMaxLen,LPDWORD lpdwEntriesRead,LPDWORD lpdwTotalEntries,LPDWORD lpdwResumeHandle); |
| DWORD WINAPI MprConfigInterfaceCreate(HANDLE hMprConfig,DWORD dwLevel,LPBYTE lpbBuffer,HANDLE *phRouterInterface); |
| DWORD WINAPI MprConfigInterfaceDelete(HANDLE hMprConfig,HANDLE hRouterInterface); |
| DWORD WINAPI MprConfigInterfaceGetHandle(HANDLE hMprConfig,LPWSTR lpwsInterfaceName,HANDLE *phRouterInterface); |
| DWORD WINAPI MprConfigInterfaceGetInfo(HANDLE hMprConfig,HANDLE hRouterInterface,DWORD dwLevel,LPBYTE *lplpBuffer,LPDWORD lpdwBufferSize); |
| DWORD WINAPI MprConfigInterfaceSetInfo(HANDLE hMprConfig,HANDLE hRouterInterface,DWORD dwLevel,LPBYTE lpbBuffer); |
| DWORD WINAPI MprConfigInterfaceEnum(HANDLE hMprConfig,DWORD dwLevel,LPBYTE *lplpBuffer,DWORD dwPrefMaxLen,LPDWORD lpdwEntriesRead,LPDWORD lpdwTotalEntries,LPDWORD lpdwResumeHandle); |
| DWORD WINAPI MprConfigInterfaceTransportAdd(HANDLE hMprConfig,HANDLE hRouterInterface,DWORD dwTransportId,LPWSTR lpwsTransportName,LPBYTE pInterfaceInfo,DWORD dwInterfaceInfoSize,HANDLE *phRouterIfTransport); |
| DWORD WINAPI MprConfigInterfaceTransportRemove(HANDLE hMprConfig,HANDLE hRouterInterface,HANDLE hRouterIfTransport); |
| DWORD WINAPI MprConfigInterfaceTransportGetHandle(HANDLE hMprConfig,HANDLE hRouterInterface,DWORD dwTransportId,HANDLE *phRouterIfTransport); |
| DWORD WINAPI MprConfigInterfaceTransportGetInfo(HANDLE hMprConfig,HANDLE hRouterInterface,HANDLE hRouterIfTransport,LPBYTE *ppInterfaceInfo,LPDWORD lpdwInterfaceInfoSize); |
| DWORD WINAPI MprConfigInterfaceTransportSetInfo(HANDLE hMprConfig,HANDLE hRouterInterface,HANDLE hRouterIfTransport,LPBYTE pInterfaceInfo,DWORD dwInterfaceInfoSize); |
| DWORD WINAPI MprConfigInterfaceTransportEnum(HANDLE hMprConfig,HANDLE hRouterInterface,DWORD dwLevel,LPBYTE *lplpBuffer,DWORD dwPrefMaxLen,LPDWORD lpdwEntriesRead,LPDWORD lpdwTotalEntries,LPDWORD lpdwResumeHandle); |
| DWORD WINAPI MprConfigGetFriendlyName(HANDLE hMprConfig,PWCHAR pszGuidName,PWCHAR pszBuffer,DWORD dwBufferSize); |
| DWORD WINAPI MprConfigGetGuidName(HANDLE hMprConfig,PWCHAR pszFriendlyName,PWCHAR pszBuffer,DWORD dwBufferSize); |
| DWORD WINAPI MprInfoCreate(DWORD dwVersion,LPVOID *lplpNewHeader); |
| DWORD WINAPI MprInfoDelete(LPVOID lpHeader); |
| DWORD WINAPI MprInfoRemoveAll(LPVOID lpHeader,LPVOID *lplpNewHeader); |
| DWORD WINAPI MprInfoDuplicate(LPVOID lpHeader,LPVOID *lplpNewHeader); |
| DWORD WINAPI MprInfoBlockAdd(LPVOID lpHeader,DWORD dwInfoType,DWORD dwItemSize,DWORD dwItemCount,LPBYTE lpItemData,LPVOID *lplpNewHeader); |
| DWORD WINAPI MprInfoBlockRemove(LPVOID lpHeader,DWORD dwInfoType,LPVOID *lplpNewHeader); |
| DWORD WINAPI MprInfoBlockSet(LPVOID lpHeader,DWORD dwInfoType,DWORD dwItemSize,DWORD dwItemCount,LPBYTE lpItemData,LPVOID *lplpNewHeader); |
| DWORD WINAPI MprInfoBlockFind(LPVOID lpHeader,DWORD dwInfoType,LPDWORD lpdwItemSize,LPDWORD lpdwItemCount,LPBYTE *lplpItemData); |
| DWORD WINAPI MprInfoBlockQuerySize(LPVOID lpHeader); |
| |
| #define MprInfoBlockExists(h,t) (MprInfoBlockFind((h),(t),NULL,NULL,NULL)==NO_ERROR) |
| |
| #if (_WIN32_WINNT >= 0x0600) |
| typedef enum _RAS_QUARANTINE_STATE { |
| RAS_QUAR_STATE_NORMAL, |
| RAS_QUAR_STATE_QUARANTINE, |
| RAS_QUAR_STATE_PROBATION, |
| RAS_QUAR_STATE_NOT_CAPABLE |
| } RAS_QUARANTINE_STATE; |
| |
| typedef struct _MPR_FILTER_0 { |
| WINBOOL fEnabled; |
| } MPR_FILTER_0, *PMPR_FILTER_0; |
| |
| typedef struct _MPR_SERVER_2 { |
| DWORD dwNumPptpPorts; |
| DWORD dwPptpPortFlags; |
| DWORD dwNumL2tpPorts; |
| DWORD dwL2tpPortFlags; |
| DWORD dwNumSstpPorts; |
| DWORD dwSstpPortFlags; |
| } MPR_SERVER_2, *PMPR_SERVER_2; |
| |
| typedef struct _PPP_IPV6CP_INFO { |
| DWORD dwVersion; |
| DWORD dwSize; |
| DWORD dwError; |
| BYTE bInterfaceIdentifier[8]; |
| BYTE bRemoteInterfaceIdentifier[8]; |
| DWORD dwOptions; |
| DWORD dwRemoteOptions; |
| BYTE bPrefix[8]; |
| DWORD dwPrefixLength; |
| } PPP_IPV6_CP_INFO, *PPPP_IPV6_CP_INFO; |
| |
| typedef struct _PPP_INFO_3 { |
| PPP_NBFCP_INFO nbf; |
| PPP_IPCP_INFO2 ip; |
| PPP_IPV6_CP_INFO ipv6; |
| PPP_CCP_INFO ccp; |
| PPP_LCP_INFO lcp; |
| } PPP_INFO_3; |
| |
| typedef struct _RAS_CONNECTION_3 { |
| DWORD dwVersion; |
| DWORD dwSize; |
| HANDLE hConnection; |
| WCHAR wszUserName[UNLEN + 1]; |
| ROUTER_INTERFACE_TYPE dwInterfaceType; |
| GUID guid; |
| PPP_INFO_3 PppInfo3; |
| RAS_QUARANTINE_STATE rasQuarState; |
| FILETIME timer; |
| } RAS_CONNECTION_3, *PRAS_CONNECTION_3; |
| |
| WINBOOL CALLBACK MprAdminAcceptNewConnection3( |
| RAS_CONNECTION_0 *pRasConnection0, |
| RAS_CONNECTION_1 *pRasConnection1, |
| RAS_CONNECTION_2 *pRasConnection2, |
| RAS_CONNECTION_3 *pRasConnection3 |
| ); |
| |
| WINBOOL CALLBACK MprAdminAcceptReauthentication( |
| RAS_CONNECTION_0 *pRasConnection0, |
| RAS_CONNECTION_1 *pRasConnection1, |
| RAS_CONNECTION_2 *pRasConnection2, |
| RAS_CONNECTION_3 *pRasConnection3 |
| ); |
| |
| void CALLBACK MprAdminConnectionHangupNotification3( |
| RAS_CONNECTION_0 *pRasConnection0, |
| RAS_CONNECTION_1 *pRasConnection1, |
| RAS_CONNECTION_2 *pRasConnection2, |
| RAS_CONNECTION_3 *pRasConnection3 |
| ); |
| |
| DWORD CALLBACK MprAdminGetIpv6AddressForUser( |
| WCHAR *lpwszUserName, |
| WCHAR *lpwszPortName, |
| IN6_ADDR *lpdwIpv6Address, |
| WINBOOL *bNotifyRelease |
| ); |
| |
| DWORD CALLBACK MprAdminReleaseIpv6AddressForUser( |
| WCHAR *lpwszUserName, |
| WCHAR *lpwszPortName, |
| IN6_ADDR *lpdwIpv6Address |
| ); |
| |
| DWORD WINAPI MprConfigFilterGetInfo( |
| HANDLE hMprConfig, |
| DWORD dwLevel, |
| DWORD dwTransportId, |
| LPBYTE lpBuffer |
| ); |
| |
| DWORD WINAPI MprConfigFilterSetInfo( |
| HANDLE hMprConfig, |
| DWORD dwLevel, |
| DWORD dwTransportId, |
| LPBYTE lpBuffer |
| ); |
| |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ |
| |
| #if (_WIN32_WINNT >= 0x0601) |
| #define MPRAPI_RAS_CONNECTION_OBJECT_REVISION_1 0x01 |
| #define MPRAPI_MPR_SERVER_OBJECT_REVISION_1 0x01 |
| #define MPRAPI_MPR_SERVER_SET_CONFIG_OBJECT_REVISION_1 0x01 |
| |
| typedef enum { |
| MPRAPI_OBJECT_TYPE_RAS_CONNECTION_OBJECT = 0x1, |
| MPRAPI_OBJECT_TYPE_MPR_SERVER_OBJECT = 0x2, |
| MPRAPI_OBJECT_TYPE_MPR_SERVER_SET_CONFIG_OBJECT = 0x3, |
| MPRAPI_OBJECT_TYPE_AUTH_VALIDATION_OBJECT = 0x4, |
| MPRAPI_OBJECT_TYPE_UPDATE_CONNECTION_OBJECT = 0x5 |
| } MPRAPI_OBJECT_TYPE; |
| |
| typedef struct _MPRAPI_OBJECT_HEADER { |
| UCHAR revision; |
| UCHAR type; |
| USHORT size; |
| } MPRAPI_OBJECT_HEADER, *PMPRAPI_OBJECT_HEADER; |
| |
| typedef struct _AUTH_VALIDATION_EX { |
| MPRAPI_OBJECT_HEADER Header; |
| HANDLE hRasConnection; |
| WCHAR wszUserName[UNLEN + 1 ]; |
| WCHAR wszLogonDomain[DNLEN + 1 ]; |
| DWORD AuthInfoSize; |
| BYTE AuthInfo[1]; |
| } AUTH_VALIDATION_EX, *PAUTH_VALIDATION_EX; |
| |
| #define RAS_FLAGS_PPP_CONNECTION 0x00000001 |
| #define RAS_FLAGS_MESSENGER_PRESENT 0x00000002 |
| #define RAS_FLAGS_QUARANTINE_PRESENT 0x00000008 |
| #define RAS_FLAGS_ARAP_CONNECTION 0x00000010 |
| #define RAS_FLAGS_IKEV2_CONNECTION 0x00000010 |
| #define RAS_FLAGS_DORMANT 0x00000020 |
| |
| #define IPADDRESSLEN 15 |
| |
| typedef struct _PPP_PROJECTION_INFO { |
| DWORD dwIPv4NegotiationError; |
| WCHAR wszAddress[IPADDRESSLEN + 1]; |
| WCHAR wszRemoteAddress[IPADDRESSLEN + 1]; |
| DWORD dwIPv4Options; |
| DWORD dwIPv4RemoteOptions; |
| ULONG64 IPv4SubInterfaceIndex; |
| DWORD dwIPv6NegotiationError; |
| BYTE bInterfaceIdentifier[8]; |
| BYTE bRemoteInterfaceIdentifier[8]; |
| BYTE bPrefix[8]; |
| DWORD dwPrefixLength; |
| ULONG64 IPv6SubInterfaceIndex; |
| DWORD dwLcpError; |
| DWORD dwAuthenticationProtocol; |
| DWORD dwAuthenticationData; |
| DWORD dwRemoteAuthenticationProtocol; |
| DWORD dwRemoteAuthenticationData; |
| DWORD dwLcpTerminateReason; |
| DWORD dwLcpRemoteTerminateReason; |
| DWORD dwLcpOptions; |
| DWORD dwLcpRemoteOptions; |
| DWORD dwEapTypeId; |
| DWORD dwRemoteEapTypeId; |
| DWORD dwCcpError; |
| DWORD dwCompressionAlgorithm; |
| DWORD dwCcpOptions; |
| DWORD dwRemoteCompressionAlgorithm; |
| DWORD dwCcpRemoteOptions; |
| } PPP_PROJECTION_INFO, *PPPP_PROJECTION_INFO; |
| |
| typedef struct _IKEV2_PROJECTION_INFO { |
| DWORD dwIPv4NegotiationError; |
| WCHAR wszAddress[IPADDRESSLEN + 1]; |
| WCHAR wszRemoteAddress[IPADDRESSLEN + 1]; |
| ULONG64 IPv4SubInterfaceIndex; |
| DWORD dwIPv6NegotiationError; |
| BYTE bInterfaceIdentifier[8]; |
| BYTE bRemoteInterfaceIdentifier[8]; |
| BYTE bPrefix[8]; |
| DWORD dwPrefixLength; |
| ULONG64 IPv6SubInterfaceIndex; |
| DWORD dwOptions; |
| DWORD dwAuthenticationProtocol; |
| DWORD dwEapTypeId; |
| DWORD dwCompressionAlgorithm; |
| DWORD dwEncryptionMethod; |
| } IKEV2_PROJECTION_INFO, *PIKEV2_PROJECTION_INFO; |
| |
| typedef struct _PROJECTION_INFO { |
| UCHAR projectionInfoType; |
| __C89_NAMELESS union { |
| IKEV2_PROJECTION_INFO Ikev2ProjectionInfo; |
| PPP_PROJECTION_INFO PppProjectionInfo; |
| } DUMMYUNIONNAME; |
| } PROJECTION_INFO, *PPROJECTION_INFO; |
| |
| typedef struct _RAS_CONNECTION_EX { |
| MPRAPI_OBJECT_HEADER Header; |
| DWORD dwConnectDuration; |
| ROUTER_INTERFACE_TYPE dwInterfaceType; |
| DWORD dwConnectionFlags; |
| WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1]; |
| WCHAR wszUserName[UNLEN + 1]; |
| WCHAR wszLogonDomain[DNLEN + 1]; |
| WCHAR wszRemoteComputer[NETBIOS_NAME_LEN + 1]; |
| GUID guid; |
| RAS_QUARANTINE_STATE rasQuarState; |
| FILETIME probationTime; |
| DWORD dwBytesXmited; |
| DWORD dwBytesRcved; |
| DWORD dwFramesXmited; |
| DWORD dwFramesRcved; |
| DWORD dwCrcErr; |
| DWORD dwTimeoutErr; |
| DWORD dwAlignmentErr; |
| DWORD dwHardwareOverrunErr; |
| DWORD dwFramingErr; |
| DWORD dwBufferOverrunErr; |
| DWORD dwCompressionRatioIn; |
| DWORD dwCompressionRatioOut; |
| DWORD dwNumSwitchOvers; |
| WCHAR wszRemoteEndpointAddress[MAXIPADRESSLEN+1]; |
| WCHAR wszLocalEndpointAddress[MAXIPADRESSLEN+1]; |
| PROJECTION_INFO ProjectionInfo; |
| HANDLE hConnection; |
| HANDLE hInterface; |
| } RAS_CONNECTION_EX, *PRAS_CONNECTION_EX; |
| |
| typedef struct _RAS_UPDATE_CONNECTION { |
| MPRAPI_OBJECT_HEADER Header; |
| DWORD dwIfIndex; |
| WCHAR wszLocalEndpointAddress[MAXIPADRESSLEN+1]; |
| WCHAR wszRemoteEndpointAddress[MAXIPADRESSLEN+1]; |
| } RAS_UPDATE_CONNECTION, *PRAS_UPDATE_CONNECTION; |
| |
| #define MPRAPI_IKEV2_SET_TUNNEL_CONFIG_PARAMS 0x01 |
| |
| typedef struct _IKEV2_TUNNEL_CONFIG_PARAMS { |
| DWORD dwIdleTimeout; |
| DWORD dwNetworkBlackoutTime; |
| DWORD dwSaLifeTime; |
| DWORD dwSaDataSizeForRenegotiation; |
| DWORD dwConfigOptions; |
| DWORD dwTotalCertificates; |
| CERT_NAME_BLOB *certificateNames; |
| } IKEV2_TUNNEL_CONFIG_PARAMS, *PIKEV2_TUNNEL_CONFIG_PARAMS; |
| |
| typedef struct _IKEV2_CONFIG_PARAMS { |
| DWORD dwNumPorts; |
| DWORD dwPortFlags; |
| DWORD dwTunnelConfigParamFlags; |
| IKEV2_TUNNEL_CONFIG_PARAMS TunnelConfigParams; |
| } IKEV2_CONFIG_PARAMS, *PIKEV2_CONFIG_PARAMS; |
| |
| typedef struct _PPTP_CONFIG_PARAMS { |
| DWORD dwNumPorts; |
| DWORD dwPortFlags; |
| } PPTP_CONFIG_PARAMS, *PPPTP_CONFIG_PARAMS; |
| |
| typedef struct _L2TP_CONFIG_PARAMS { |
| DWORD dwNumPorts; |
| DWORD dwPortFlags; |
| } L2TP_CONFIG_PARAMS, *PL2TP_CONFIG_PARAMS; |
| |
| typedef struct _SSTP_CERT_INFO { |
| BOOL isDefault; |
| CRYPT_HASH_BLOB certBlob; |
| } SSTP_CERT_INFO, *PSSTP_CERT_INFO; |
| |
| typedef struct _SSTP_CONFIG_PARAMS { |
| DWORD dwNumPorts; |
| DWORD dwPortFlags; |
| BOOL isUseHttps; |
| DWORD certAlgorithm; |
| SSTP_CERT_INFO sstpCertDetails; |
| } SSTP_CONFIG_PARAMS, *PSSTP_CONFIG_PARAMS; |
| |
| typedef struct _MPRAPI_TUNNEL_CONFIG_PARAMS { |
| IKEV2_CONFIG_PARAMS IkeConfigParams; |
| PPTP_CONFIG_PARAMS PptpConfigParams; |
| L2TP_CONFIG_PARAMS L2tpConfigParams; |
| SSTP_CONFIG_PARAMS SstpConfigParams; |
| } MPRAPI_TUNNEL_CONFIG_PARAMS, *PMPRAPI_TUNNEL_CONFIG_PARAMS; |
| |
| typedef struct _MPR_SERVER_SET_CONFIG_EX { |
| MPRAPI_OBJECT_HEADER Header; |
| DWORD setConfigForProtocols; |
| MPRAPI_TUNNEL_CONFIG_PARAMS ConfigParams; |
| } MPR_SERVER_SET_CONFIG_EX, *PMPR_SERVER_SET_CONFIG_EX; |
| |
| typedef struct _MPR_SERVER_EX { |
| MPRAPI_OBJECT_HEADER Header; |
| DWORD fLanOnlyMode; |
| DWORD dwUpTime; |
| DWORD dwTotalPorts; |
| DWORD dwPortsInUse; |
| DWORD Reserved; |
| MPRAPI_TUNNEL_CONFIG_PARAMS ConfigParams; |
| } MPR_SERVER_EX, *PMPR_SERVER_EX; |
| |
| typedef DWORD (APIENTRY * PMPRADMINGETIPADDRESSFORUSER)(WCHAR *, WCHAR *, DWORD *, WINBOOL *); |
| typedef VOID (APIENTRY * PMPRADMINRELEASEIPADRESS)(WCHAR *, WCHAR *, DWORD *); |
| typedef DWORD (APIENTRY * PMPRADMINGETIPV6ADDRESSFORUSER)(WCHAR *, WCHAR *, IN6_ADDR *, WINBOOL *); |
| typedef VOID (APIENTRY * PMPRADMINRELEASEIPV6ADDRESSFORUSER)(WCHAR *, WCHAR *, IN6_ADDR *); |
| typedef WINBOOL (APIENTRY * PMPRADMINACCEPTNEWLINK)(RAS_PORT_0 *, RAS_PORT_1 *); |
| typedef VOID (APIENTRY * PMPRADMINLINKHANGUPNOTIFICATION)(RAS_PORT_0 *, RAS_PORT_1 *); |
| typedef DWORD (APIENTRY * PMPRADMINTERMINATEDLL)(); |
| typedef BOOL (APIENTRY * PMPRADMINACCEPTNEWCONNECTIONEX)(RAS_CONNECTION_EX *); |
| typedef BOOL (APIENTRY * PMPRADMINACCEPTREAUTHENTICATIONEX)(RAS_CONNECTION_EX *); |
| typedef VOID (APIENTRY * PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX)(RAS_CONNECTION_EX *); |
| |
| typedef struct _MPRAPI_ADMIN_DLL_CALLBACKS { |
| UCHAR revision; |
| PMPRADMINGETIPADDRESSFORUSER lpfnMprAdminGetIpAddressForUser; |
| PMPRADMINRELEASEIPADRESS lpfnMprAdminReleaseIpAddress; |
| PMPRADMINGETIPV6ADDRESSFORUSER lpfnMprAdminGetIpv6AddressForUser; |
| PMPRADMINRELEASEIPV6ADDRESSFORUSER lpfnMprAdminReleaseIpV6AddressForUser; |
| PMPRADMINACCEPTNEWLINK lpfnRasAdminAcceptNewLink; |
| PMPRADMINLINKHANGUPNOTIFICATION lpfnRasAdminLinkHangupNotification; |
| PMPRADMINTERMINATEDLL lpfnRasAdminTerminateDll; |
| PMPRADMINACCEPTNEWCONNECTIONEX lpfnRasAdminAcceptNewConnectionEx; |
| PMPRADMINACCEPTREAUTHENTICATIONEX lpfnRasAdminAcceptReauthenticationEx; |
| PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX lpfnRasAdminConnectionHangupNotificationEx; |
| } MPRAPI_ADMIN_DLL_CALLBACKS, *PMPRAPI_ADMIN_DLL_CALLBACKS; |
| |
| DWORD APIENTRY MprConfigServerSetInfoEx(HANDLE hMprConfig,MPR_SERVER_SET_CONFIG_EX *pSetServerConfig); |
| |
| DWORD APIENTRY MprConfigServerGetInfoEx( |
| HANDLE hMprConfig, |
| MPR_SERVER_EX *pServerInfo |
| ); |
| |
| DWORD APIENTRY MprAdminConnectionEnumEx( |
| RAS_SERVER_HANDLE hRasServer, |
| PMPRAPI_OBJECT_HEADER pObjectHeader, |
| DWORD dwPreferedMaxLen, |
| LPDWORD lpdwEntriesRead, |
| LPDWORD lpdwTotalEntries, |
| PRAS_CONNECTION_EX *ppRasConn, |
| LPDWORD lpdwResumeHandle |
| ); |
| |
| DWORD APIENTRY MprAdminConnectionGetInfoEx( |
| RAS_SERVER_HANDLE hRasServer, |
| HANDLE hConnection, |
| PRAS_CONNECTION_EX pRasConnection |
| ); |
| |
| DWORD APIENTRY MprAdminInitializeDllEx( |
| PMPRAPI_ADMIN_DLL_CALLBACKS pAdminCallbacks |
| ); |
| |
| DWORD APIENTRY MprAdminIsServiceInitialized( |
| LPWSTR lpwsServerName, |
| WINBOOL *fIsServiceInitialized |
| ); |
| |
| DWORD APIENTRY MprAdminServerGetInfoEx( |
| MPR_SERVER_HANDLE hMprServer, |
| MPR_SERVER_EX *pServerInfo |
| ); |
| |
| DWORD APIENTRY MprAdminServerSetInfoEx( |
| MPR_SERVER_HANDLE hMprServer, |
| MPR_SERVER_SET_CONFIG_EX *pServerInfo |
| ); |
| |
| #endif /*(_WIN32_WINNT >= 0x0601)*/ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) */ |
| |
| #endif /* __ROUTING_MPRADMIN_H__ */ |