| /** | |
| * 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__ */ |