/* * mprapi.h Multiple Provider Router (MPR) functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef __ROUTING_MPRADMIN_H__ #define __ROUTING_MPRADMIN_H__ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* Server handles */ typedef HANDLE RAS_SERVER_HANDLE; typedef HANDLE MPR_SERVER_HANDLE; typedef HANDLE MIB_SERVER_HANDLE; /* Remoting and Remote Access Service (RRAS) name */ #define RRAS_SERVICE_NAME TEXT( "RemoteAccess" ) /* Protocol identifiers */ #define PID_IPX 0x0000002BL #define PID_IP 0x00000021L #define PID_IPV6 0x00000057L #define PID_NBF 0x0000003FL #define PID_ATALK 0x00000029L /* Maximum lengths */ #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 /* MPR interface flags */ #define MPR_INTERFACE_OUT_OF_RESOURCES 0x00000001L #define MPR_INTERFACE_ADMIN_DISABLED 0x00000002L #define MPR_INTERFACE_CONNECTION_FAILURE 0x00000004L #define MPR_INTERFACE_SERVICE_PAUSED 0x00000008L #define MPR_INTERFACE_DIALOUT_HOURS_RESTRICTION 0x00000010L #define MPR_INTERFACE_NO_MEDIA_SENSE 0x00000020L #define MPR_INTERFACE_NO_DEVICE 0x00000040L /* Aliases of maximum lengths from RAS */ #if (WINVER >= 0x0500) #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 #endif /* MPR interface options */ #if (WINVER >= 0x0500) #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 #endif #if (WINVER >= 0x0501) #define MPRIO_IpSecPreSharedKey 0x80000000L #endif /* MPR interface protocols */ #if (WINVER >= 0x0500) #define MPRNP_Ipx RASNP_Ipx #define MPRNP_Ip RASNP_Ip #endif #if (WINVER >= 0x0600) #define MRPNP_IPv6 RASNP_Ipv6 #endif /* MPR interface device types */ #if (WINVER >= 0x0500) #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 MRPDT_Irda RASDT_Irda #define MPRDT_Parallel RASDT_Parallel #endif /* MPR interface types */ #if (WINVER >= 0x0500) #define MPRET_Phone RASET_Phone #define MPRET_Vpn RASET_Vpn #define MPRET_Direct RASET_Direct #endif /* MPR interface dial modes */ #if (WINVER >= 0x0500) #define MPRDM_DialFirst 0L #define MPRDM_DialAll RASEDM_DialAll #define MPRDM_DialAsNeeded RASEDM_DialAsNeeded #endif /* MPR interface idle disconnect seconds special values */ #if (WINVER >= 0x0500) #define MPRIDS_Disabled RASIDS_Disabled #define MPRIDS_UseGlobalValue RASIDS_UseGlobalValue #endif /* MPR interface encryption types */ #if (WINVER >= 0x0500) #define MPR_ET_None ET_None #define MPR_ET_Require ET_Require #define MPR_ET_RequireMax ET_RequireMax #define MPR_ET_Optional ET_Optional #endif /* MPR interface VPN strategies */ #if (WINVER >= 0x0500) #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 #endif /* MPR server flags */ #if (WINVER >= 0x0501) #define MPR_ENABLE_RAS_ON_DEVICE 0x00000001L #define MPR_ENABLE_ROUTING_ON_DEVICE 0x00000002L #endif /* Address lengths */ #define IPADDRESSLEN 15 #define IPXADDRESSLEN 22 #define ATADDRESSLEN 32 #define MAXIPADRESSLEN 64 /* PPP IPCP options */ #define PPP_IPCP_VJ 0x00000001L /* PPP compression control protocol compression algorithms */ #if (WINVER >= 0x0500) #define RASCCPCA_MPPC 0x00000006L #define RASCCPCA_STAC 0x00000005L #endif /* PPP compression control protocol options */ #if (WINVER >= 0x0500) #define PPP_CCP_COMPRESSION 0x00000001L #define PPP_CCP_ENCRYPTION40BITOLD 0x00000010L #define PPP_CPP_ENCRYPTION40BIT 0x00000020L #define PPP_CCP_ENCRYPTION128BIT 0x00000040L #define PPP_CCP_ENCRYPTION56BIT 0x00000080L #define PPP_CCP_HISTORYLESS 0x01000000L #endif /* PPP link control protocol authentication options */ #if (WINVER >= 0x0500) #define PPP_LCP_PAP 0xC023 #define PPP_LCP_SPAP 0xC027 #define PPP_LCP_CHAP 0xC223 #define PPP_LCP_EAP 0xC227 #endif /* PPP link control protocol authentication data */ #if (WINVER >= 0x0500) #define PPP_LCP_CHAP_MD5 0x05 #define PPP_LCP_CHAP_MS 0x80 #define PPP_LCP_CHAP_MSV2 0x81 #endif /* PPP link control protocol options */ #if (WINVER >= 0x0500) #define PPP_LCP_MULTILINK_FRAMING 0x00000001L #define PPP_LCP_PFC 0x00000002L #define PPP_LCP_ACFC 0x00000004L #define PPP_LCP_SSHF 0x00000008L #define PPP_LCP_DES_56 0x00000010L #define PPP_LCP_3_DES 0x00000020L #endif #if (WINVER >= 0x0600) #define PPP_LCP_AES_128 0x00000040L #define PPP_LCP_AES_256 0x00000080L #endif /* RAS connection flags */ #define RAS_FLAGS_PPP_CONNECTION 0x00000001L #define RAS_FLAGS_MESSENGER_PRESENT 0x00000002L #if (WINVER < 0x0501) #define RAS_FLAGS_RAS_CONNECTION 0x00000004L #endif #define RAS_FLAGS_QUARANTINE_PRESENT 0x00000008L #if (WINVER >= 0x0601) #define RAS_FLAGS_DORMANT 0x00000020L #endif /* RAS privileges */ #define RASPRIV_NoCallback 0x01 #define RASPRIV_AdminSetCallback 0x02 #define RASPRIV_CallerSetCallback 0x04 #define RASPRIV_DialinPrivilege 0x08 #define RASPRIV_CallbackType \ (RASPRIV_AdminSetCallback | RASPRIV_CallerSetCallback | RASPRIV_NoCallback) /* RAS secondary privileges */ #define RASPRIV2_DialinPolicy 0x01 /* IKEv2 authentication types */ #if (WINVER >= 0x0601) #define MPRAPI_IKEV2_AUTH_USING_CERT 1L #define MPRAPI_IKEV2_AUTH_USING_EAP 2L #endif /* Projection information types */ #if (WINVER >= 0x0601) #define MPRAPI_PPP_PROJECTION_INFO_TYPE 1 #define MPRAPI_IKEV2_PROJECTION_INFO_TYPE 2 #endif /* MPRAPI object revision numbers */ #if (WINVER >= 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 #define MPRAPI_RAS_UPDATE_CONNECTION_OBJECT_REVISION_1 0x01 #endif /* Tunnel configuration parameter flags */ #if (WINVER >= 0x0601) #define MPRAPI_IKEV2_SET_TUNNEL_CONFIG_PARAMS 0x00000001L #endif /* Maximum SSTP hash size */ #if (WINVER >= 0x0601) #define MAX_SSTP_HASH_SIZE 32 #endif /* Configuration protocol tunnel types */ #if (WINVER >= 0x0601) #define MPRAPI_SET_CONFIG_PROTOCOL_FOR_PPTP 0x00000001L #define MPRAPI_SET_CONFIG_PROTOCOL_FOR_L2TP 0x00000002L #define MPRAPI_SET_CONFIG_PROTOCOL_FOR_SSTP 0x00000004L #define MPRAPI_SET_CONFIG_PROTOCOL_FOR_IKEV2 0x00000008L #endif /* Authentication constants */ #if (WINVER >= 0x0601) #define ALLOW_NO_AUTH 1 #define DO_NOT_ALLOW_NO_AUTH 2 #endif /* MPRAPI administration DLL version numbers */ #if (WINVER >= 0x0601) #define MPRAPI_ADMIN_DLL_VERSION_1 0x00000001L #define MPRAPI_ADMIN_DLL_VERSION_2 0x00000002L #endif /* Router interface types */ typedef enum _ROUTER_INTERFACE_TYPE { ROUTER_IF_TYPE_CLIENT = 0, ROUTER_IF_TYPE_HOME_ROUTER = 1, ROUTER_IF_TYPE_FULL_ROUTER = 2, ROUTER_IF_TYPE_DEDICATED = 3, ROUTER_IF_TYPE_INTERNAL = 4, ROUTER_IF_TYPE_LOOPBACK = 5, ROUTER_IF_TYPE_TUNNEL1 = 6, ROUTER_IF_TYPE_DIALOUT = 7, ROUTER_IF_TYPE_MAX = 8 } ROUTER_INTERFACE_TYPE; /* Router connection states */ typedef enum _ROUTER_CONNECTION_STATE { ROUTER_IF_STATE_UNREACHABLE = 0, ROUTER_IF_STATE_DISCONNECTED = 1, ROUTER_IF_STATE_CONNECTING = 2, ROUTER_IF_STATE_CONNECTED = 3 } ROUTER_CONNECTION_STATE; /* MPR interface (level 0) */ typedef struct _MPR_INTERFACE_0 { WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1]; HANDLE hInterface; BOOL fEnabled; ROUTER_INTERFACE_TYPE dwIfType; ROUTER_CONNECTION_STATE dwConnectionState; DWORD fUnReachabilityReasons; DWORD dwLastError; } MPR_INTERFACE_0; typedef MPR_INTERFACE_0 *PMPR_INTERFACE_0; /* MPR interface (level 1) */ #if (WINVER >= 0x0500) typedef struct _MPR_INTERFACE_1 { WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1]; HANDLE hInterface; BOOL fEnabled; ROUTER_INTERFACE_TYPE dwIfType; ROUTER_CONNECTION_STATE dwConnectionState; DWORD fUnReachabilityReasons; DWORD dwLastError; LPWSTR lpwsDialoutHoursRestriction; } MPR_INTERFACE_1; typedef MPR_INTERFACE_1 *PMPR_INTERFACE_1; #endif /* MPR interface (level 2) */ #if (WINVER >= 0x0500) typedef struct _MPR_INTERFACE_2 { WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1]; HANDLE hInterface; BOOL 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; typedef MPR_INTERFACE_2 *PMPR_INTERFACE_2; #endif /* MPR interface (level 3) */ #if (WINVER >= 0x0600) typedef struct _MPR_INTERFACE_3 { WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1]; HANDLE hInterface; BOOL 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; typedef MPR_INTERFACE_3 *PMPR_INTERFACE_3; #endif /* MPR IP in IP interface (level 0) */ typedef struct _MPR_IPINIP_INTERFACE_0 { WCHAR wszFriendlyName[MAX_INTERFACE_NAME_LEN + 1]; GUID Guid; } MPR_IPINIP_INTERFACE_0; typedef MPR_IPINIP_INTERFACE_0 *PMPR_IPINIP_INTERFACE_0; /* MPR device (level 0) */ #if (WINVER >= 0x0500) typedef struct _MPR_DEVICE_0 { WCHAR szDeviceType[MPR_MaxDeviceType + 1]; WCHAR szDeviceName[MPR_MaxDeviceName + 1]; } MPR_DEVICE_0; typedef MPR_DEVICE_0 *PMPR_DEVICE_0; #endif /* MPR device (level 1) */ #if (WINVER >= 0x0500) 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; typedef MPR_DEVICE_1 *PMPR_DEVICE_1; #endif /* MPR extended credentials (level 0) */ #if (WINVER >= 0x0500) typedef struct _MPR_CREDENTIALSEX_0 { DWORD dwSize; LPBYTE lpbCredentialsInfo; } MPR_CREDENTIALSEX_0; typedef MPR_CREDENTIALSEX_0 *PMPR_CREDENTIALSEX_0; #endif /* MPR extended credentials (level 1) */ #if (WINVER >= 0x0500) typedef struct _MPR_CREDENTIALSEX_1 { DWORD dwSize; LPBYTE lpbCredentialsInfo; } MPR_CREDENTIALSEX_1; typedef MPR_CREDENTIALSEX_1 *PMPR_CREDENTIALSEX_1; #endif /* MPR transport (level 0) */ typedef struct _MPR_TRANSPORT_0 { DWORD dwTransportId; HANDLE hTransport; WCHAR wszTransportName[MAX_TRANSPORT_NAME_LEN + 1]; } MPR_TRANSPORT_0; typedef MPR_TRANSPORT_0 *PMPR_TRANSPORT_0; /* MPR interface transport (level 0) */ typedef struct _MPR_IFTRANSPORT_0 { DWORD dwTransportId; HANDLE hIfTransport; WCHAR wszIfTransportName[MAX_TRANSPORT_NAME_LEN + 1]; } MPR_IFTRANSPORT_0; typedef MPR_IFTRANSPORT_0 *PMPR_IFTRANSPORT_0; /* MPR server (level 0) */ typedef struct _MPR_SERVER_0 { BOOL fLanOnlyMode; DWORD dwUpTime; DWORD dwTotalPorts; DWORD dwPortsInUse; } MPR_SERVER_0; typedef MPR_SERVER_0 *PMPR_SERVER_0; /* MPR server (level 1) */ #if (WINVER >= 0x0501) typedef struct _MPR_SERVER_1 { DWORD dwNumPptpPorts; DWORD dwPptpPortFlags; DWORD dwNumL2tpPorts; DWORD dwL2tpPortFlags; } MPR_SERVER_1; typedef MPR_SERVER_1 *PMPR_SERVER_1; #endif /* MPR server (level 2) */ #if (WINVER >= 0x0600) typedef struct _MPR_SERVER_2 { DWORD dwNumPptpPorts; DWORD dwPptpPortFlags; DWORD dwNumL2tpPorts; DWORD dwL2tpPortFlags; DWORD dwNumSstpPorts; DWORD dwSstpPortFlags; } MPR_SERVER_2; typedef MPR_SERVER_2 *PMPR_SERVER_2; #endif /* RAS port conditions */ typedef enum _RAS_PORT_CONDITION { RAS_PORT_NON_OPERATIONAL = 0, RAS_PORT_DISCONNECTED = 1, RAS_PORT_CALLING_BACK = 2, RAS_PORT_LISTENING = 3, RAS_PORT_AUTHENTICATING = 4, RAS_PORT_AUTHENTICATED = 5, RAS_PORT_INITIALIZING = 6 } RAS_PORT_CONDITION; /* RAS hardware conditions */ typedef enum _RAS_HARDWARE_CONDITION { RAS_HARDWARE_OPERATIONAL = 0, RAS_HARDWARE_FAILURE = 1 } RAS_HARDWARE_CONDITION; /* RAS port (level 0) */ 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; typedef RAS_PORT_0 *PRAS_PORT_0; /* RAS port (level 1) */ typedef struct _RAS_PORT_1 { HANDLE hPort; HANDLE hConnection; RAS_HARDWARE_CONDITION dwHardwareCondition; DWORD dwLineSpeed; DWORD dwBytesXmitted; DWORD dwBytesRcved; DWORD dwFramesXmitted; DWORD dwFramesRcved; DWORD dwCrcErr; DWORD dwTimeoutErr; DWORD dwAlignmentErr; DWORD dwHardwareOverrunErr; DWORD dwFramingErr; DWORD dwBufferOverrunErr; DWORD dwCompressionRatioIn; DWORD dwCompressionRatioOut; } RAS_PORT_1; typedef RAS_PORT_1 *PRAS_PORT_1; /* PPP NBFCP information */ typedef struct _PPP_NBFCP_INFO { DWORD dwError; WCHAR wszWksta[NETBIOS_NAME_LEN + 1]; } PPP_NBFCP_INFO; /* PPP IPCP information */ typedef struct _PPP_IPCP_INFO { DWORD dwError; WCHAR wszAddress[IPADDRESSLEN + 1]; WCHAR wszRemoteAddress[IPADDRESSLEN + 1]; } PPP_IPCP_INFO; /* PPP IPCP information (version 2) */ typedef struct _PPP_IPCP_INFO2 { DWORD dwError; WCHAR wszAddress[IPADDRESSLEN + 1]; WCHAR wszRemoteAddress[IPADDRESSLEN + 1]; DWORD dwOptions; DWORD dwRemoteOptions; } PPP_IPCP_INFO2; /* PPP IPXCP information */ typedef struct _PPP_IPXCP_INFO { DWORD dwError; WCHAR wszAddress[IPXADDRESSLEN + 1]; } PPP_IPXCP_INFO; /* PPP ATCP information */ typedef struct _PPP_ATCP_INFO { DWORD dwError; WCHAR wszAddress[ATADDRESSLEN + 1]; } PPP_ATCP_INFO; /* PPP IPv6 CP information */ #if (WINVER >= 0x0600) typedef struct _PPP_IPV6_CP_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; #endif /* PPP information */ typedef struct _PPP_INFO { PPP_NBFCP_INFO nbf; PPP_IPCP_INFO ip; PPP_IPXCP_INFO ipx; PPP_ATCP_INFO at; } PPP_INFO; /* PPP compression control protocol information */ #if (WINVER >= 0x0500) typedef struct _PPP_CCP_INFO { DWORD dwError; DWORD dwCompressionAlgorithm; DWORD dwOptions; DWORD dwRemoteCompressionAlgorithm; DWORD dwRemoteOptions; } PPP_CCP_INFO; #endif /* PPP link control protocol information */ #if (WINVER >= 0x0500) 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; #endif /* PPP information (version 2) */ #if (WINVER >= 0x0500) typedef struct _PPP_INFO_2 { PPP_NBFCP_INFO nbf; PPP_IPCP_INFO ip; PPP_IPXCP_INFO ipx; PPP_ATCP_INFO at; PPP_CCP_INFO ccp; PPP_LCP_INFO lcp; } PPP_INFO_2; #endif /* PPP information (version 3) */ #if (WINVER >= 0x0600) 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; #endif /* RAS connection (level 0) */ 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; typedef RAS_CONNECTION_0 *PRAS_CONNECTION_0; /* RAS connection (level 1) */ typedef struct _RAS_CONNECTION_1 { HANDLE hConnection; HANDLE hInterface; PPP_INFO PppInfo; DWORD dwBytesXmitted; DWORD dwBytesRcved; DWORD dwFramesXmitted; DWORD dwFramesRcved; DWORD dwCrcErr; DWORD dwTimeoutErr; DWORD dwAlignmentErr; DWORD dwHardwareOverrunErr; DWORD dwFramingErr; DWORD dwBufferOverrunErr; DWORD dwCompressionRatioIn; DWORD dwCompressionRatioOut; } RAS_CONNECTION_1; typedef RAS_CONNECTION_1 *PRAS_CONNECTION_1; /* RAS connection (level 2) */ #if (WINVER >= 0x0500) typedef struct _RAS_CONNECTION_2 { HANDLE hConnection; WCHAR wszUserName[UNLEN + 1]; ROUTER_INTERFACE_TYPE dwInterfaceType; GUID guid; PPP_INFO_2 PppInfo2; } RAS_CONNECTION_2; typedef RAS_CONNECTION_2 *PRAS_CONNECTION_2; #endif /* RAS quarantine states */ #if (WINVER >= 0x0500) typedef enum _RAS_QUARANTINE_STATE { RAS_QUAR_STATE_NORMAL = 0, RAS_QUAR_STATE_QUARANTINE = 1, RAS_QUAR_STATE_PROBATION = 2, RAS_QUAR_STATE_NOT_CAPABLE = 3 } RAS_QUARANTINE_STATE; #endif /* RAS connection (level 3) */ #if (WINVER >= 0x0600) 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; typedef RAS_CONNECTION_3 *PRAS_CONNECTION_3; #endif /* RAS user (level 0) */ typedef struct _RAS_USER_0 { BYTE bfPrivilege; WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN + 1]; } RAS_USER_0; typedef RAS_USER_0 *PRAS_USER_0; /* RAS user (level 1) */ typedef struct _RAS_USER_1 { BYTE bfPrivilege; WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN + 1]; BYTE bfPrivilege2; } RAS_USER_1; typedef RAS_USER_1 *PRAS_USER_1; /* MPR filter (level 0) */ #if (WINVER >= 0x0600) typedef struct _MPR_FILTER_0 { BOOL fEnable; } MPR_FILTER_0; typedef MPR_FILTER_0 *PMPR_FILTER_0; #endif /* MPRAPI object header */ #if (WINVER >= 0x0601) typedef struct _MPRAPI_OBJECT_HEADER { UCHAR revision; UCHAR type; USHORT size; } MPRAPI_OBJECT_HEADER; typedef MPRAPI_OBJECT_HEADER *PMPRAPI_OBJECT_HEADER; #endif /* MPRAPI object types */ #if (WINVER >= 0x0601) typedef enum _MPRAPI_OBJECT_TYPE { MPRAPI_OBJECT_TYPE_RAS_CONNECTION_OBJECT = 1, MPRAPI_OBJECT_TYPE_MPR_SERVER_OBJECT = 2, MPRAPI_OBJECT_TYPE_MPR_SERVER_SET_CONFIG_OBJECT = 3, MPRAPI_OBJECT_TYPE_AUTH_VALIDATION_OBJECT = 4, MPRAPI_OBJECT_TYPE_UPDATE_CONNECTION_OBJECT = 5 } MPRAPI_OBJECT_TYPE; typedef MPRAPI_OBJECT_TYPE *PMPRAPI_OBJECT_TYPE; #endif /* PPP projection information */ #if (WINVER >= 0x0601) 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; typedef PPP_PROJECTION_INFO *PPPP_PROJECTION_INFO; #endif /* IKEv2 projection information */ #if (WINVER >= 0x0601) 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; typedef IKEV2_PROJECTION_INFO *PIKEV2_PROJECTION_INFO; #endif /* Projection information */ #if (WINVER >= 0x0601) typedef struct _PROJECTION_INFO { UCHAR projectionInfoType; union { PPP_PROJECTION_INFO PppProjectionInfo; IKEV2_PROJECTION_INFO Ikev2ProjectionInfo; }; } PROJECTION_INFO; typedef PROJECTION_INFO *PPROJECTION_INFO; #endif /* RAS connection (extended version) */ #if (WINVER >= 0x0601) 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; typedef RAS_CONNECTION_EX *PRAS_CONNECTION_EX; #endif /* IKEv2 tunnel configuration parameters */ #if (WINVER >= 0x0601) 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; typedef IKEV2_TUNNEL_CONFIG_PARAMS *PIKEV2_TUNNEL_CONFIG_PARAMS; #endif /* IKEv2 configuration parameters */ #if (WINVER >= 0x0601) typedef struct _IKEV2_CONFIG_PARAMS { DWORD dwNumPorts; DWORD dwPortFlags; DWORD dwTunnelConfigParamFlags; IKEV2_TUNNEL_CONFIG_PARAMS TunnelConfigParams; } IKEV2_CONFIG_PARAMS; typedef IKEV2_CONFIG_PARAMS *PIKEV2_CONFIG_PARAMS; #endif /* PPTP configuration parameters */ #if (WINVER >= 0x0601) typedef struct _PPTP_CONFIG_PARAMS { DWORD dwNumPorts; DWORD dwPortFlags; } PPTP_CONFIG_PARAMS; typedef PPTP_CONFIG_PARAMS *PPPTP_CONFIG_PARAMS; #endif /* L2TP configuration parameters */ #if (WINVER >= 0x0601) typedef struct _L2TP_CONFIG_PARAMS { DWORD dwNumPorts; DWORD dwPortFlags; } L2TP_CONFIG_PARAMS; typedef L2TP_CONFIG_PARAMS *PL2TP_CONFIG_PARAMS; #endif /* SSTP certificate information */ #if (WINVER >= 0x0601) typedef struct _SSTP_CERT_INFO { BOOL isDefault; CRYPT_HASH_BLOB certBlob; } SSTP_CERT_INFO; typedef SSTP_CERT_INFO *PSSTP_CERT_INFO; #endif /* SSTP configuration parameters */ #if (WINVER >= 0x0601) typedef struct _SSTP_CONFIG_PARAMS { DWORD dwNumPorts; DWORD dwPortFlags; BOOL isUseHttps; DWORD certAlgorithm; SSTP_CERT_INFO sstpCertDetails; } SSTP_CONFIG_PARAMS; typedef SSTP_CONFIG_PARAMS *PSSTP_CONFIG_PARAMS; #endif /* MPRAPI tunnel configuration parameters */ #if (WINVER >= 0x0601) 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; typedef MPRAPI_TUNNEL_CONFIG_PARAMS *PMPRAPI_TUNNEL_CONFIG_PARAMS; #endif /* MPR server (extended version) */ #if (WINVER >= 0x0601) 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; typedef MPR_SERVER_EX *PMPR_SERVER_EX; #endif /* MPR server set configuration (extended version) */ #if (WINVER >= 0x0601) typedef struct _MPR_SERVER_SET_CONFIG_EX { MPRAPI_OBJECT_HEADER Header; DWORD setConfigForProtocols; MPRAPI_TUNNEL_CONFIG_PARAMS ConfigParams; } MPR_SERVER_SET_CONFIG_EX; typedef MPR_SERVER_SET_CONFIG_EX *PMPR_SERVER_SET_CONFIG_EX; #endif /* Authentication validation (extended version) */ #if (WINVER >= 0x0601) 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; #endif /* RAS update connection */ #if (WINVER >= 0x0601) typedef struct RAS_UPDATE_CONNECTION_ { MPRAPI_OBJECT_HEADER Header; DWORD dwIfIndex; WCHAR wszLocalEndpointAddress[MAXIPADRESSLEN + 1]; WCHAR wszRemoteEndpointAddress[MAXIPADRESSLEN + 1]; } RAS_UPDATE_CONNECTION; typedef RAS_UPDATE_CONNECTION *PRAS_UPDATE_CONNECTION; #endif /* MPRAPI administration DLL function templates */ #if (WINVER >= 0x0601) typedef DWORD (APIENTRY *PMPRADMINGETIPADDRESSFORUSER)( WCHAR *, WCHAR *, DWORD *, BOOL * ); typedef VOID (APIENTRY *PMPRADMINRELEASEIPADRESS)( WCHAR *, WCHAR *, DWORD * ); typedef DWORD (APIENTRY *PMPRADMINGETIPV6ADDRESSFORUSER)( WCHAR *, WCHAR *, IN6_ADDR *, BOOL * ); typedef VOID (APIENTRY *PMPRADMINRELEASEIPV6ADDRESSFORUSER)( WCHAR *, WCHAR *, IN6_ADDR * ); typedef BOOL (APIENTRY *PMPRADMINACCEPTNEWCONNECTION)( RAS_CONNECTION_0 *, RAS_CONNECTION_1 * ); typedef BOOL (APIENTRY *PMPRADMINACCEPTNEWCONNECTION2)( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 * ); typedef BOOL (APIENTRY *PMPRADMINACCEPTNEWCONNECTION3)( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 *, RAS_CONNECTION_3 * ); typedef BOOL (APIENTRY *PMPRADMINACCEPTNEWLINK)( RAS_PORT_0 *, RAS_PORT_1 * ); typedef VOID (APIENTRY *PMPRADMINCONNECTIONHANGUPNOTIFICATION)( RAS_CONNECTION_0 *, RAS_CONNECTION_1 * ); typedef VOID (APIENTRY *PMPRADMINCONNECTIONHANGUPNOTIFICATION2)( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 * ); typedef VOID (APIENTRY *PMPRADMINCONNECTIONHANGUPNOTIFICATION3)( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 *, RAS_CONNECTION_3 * ); typedef VOID (APIENTRY *PMPRADMINLINKHANGUPNOTIFICATION)( RAS_PORT_0 *, RAS_PORT_1 * ); typedef DWORD (APIENTRY *PMPRADMINTERMINATEDLL)(); typedef BOOL (APIENTRY *PMPRADMINACCEPTREAUTHENTICATION)( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 *, RAS_CONNECTION_3 * ); typedef BOOL (APIENTRY *PMPRADMINACCEPTNEWCONNECTIONEX)( RAS_CONNECTION_EX * ); typedef BOOL (APIENTRY *PMPRADMINACCEPTREAUTHENTICATIONEX)( RAS_CONNECTION_EX * ); typedef BOOL (APIENTRY *PMPRADMINACCEPTTUNNELENDPOINTCHANGEEX)( RAS_CONNECTION_EX * ); typedef VOID (APIENTRY *PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX)( RAS_CONNECTION_EX * ); typedef DWORD (APIENTRY *PMPRADMINRASVALIDATEPREAUTHENTICATEDCONNECTIONEX)( AUTH_VALIDATION_EX * ); #endif /* MPRAPI administration DLL callbacks */ #if (WINVER >= 0x0601) typedef struct _MPRAPI_ADMIN_DLL_CALLBACKS { UCHAR revision; PMPRADMINGETIPADDRESSFORUSER lpfnMprAdminGetIpAddressForUser; PMPRADMINRELEASEIPADRESS lpfnMprAdminReleaseIpAddress; PMPRADMINGETIPV6ADDRESSFORUSER lpfnMprAdminGetIpv6AddressForUser; PMPRADMINRELEASEIPV6ADDRESSFORUSER lpfnMprAdminReleaseIpv6AddressForUser; PMPRADMINACCEPTNEWLINK lpfnRasAdminAcceptNewLink; PMPRADMINLINKHANGUPNOTIFICATION lpfnRasAdminLinkHangupNotification; PMPRADMINTERMINATEDLL lpfnRasAdminTerminateDll; PMPRADMINACCEPTNEWCONNECTIONEX lpfnRasAdminAcceptNewConnectionEx; PMPRADMINACCEPTTUNNELENDPOINTCHANGEEX lpfnRasAdminAcceptEndpointChangeEx; PMPRADMINACCEPTREAUTHENTICATIONEX lpfnRasAdminAcceptReauthenticationEx; PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX lpfnRasAdminConnectionHangupNotificationEx; PMPRADMINRASVALIDATEPREAUTHENTICATEDCONNECTIONEX lpfnRASValidatePreAuthenticatedConnectionEx; } MPRAPI_ADMIN_DLL_CALLBACKS; typedef MPRAPI_ADMIN_DLL_CALLBACKS *PMPRAPI_ADMIN_DLL_CALLBACKS; #endif /* Functions in MPRAPI.DLL */ DWORD APIENTRY MprAdminBufferFree( LPVOID ); DWORD APIENTRY MprAdminConnectionClearStatus( RAS_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminConnectionEnum( RAS_SERVER_HANDLE, DWORD, LPBYTE *, DWORD, LPDWORD, LPDWORD, LPDWORD ); DWORD APIENTRY MprAdminConnectionGetInfo( RAS_SERVER_HANDLE, DWORD, HANDLE, LPBYTE * ); DWORD APIENTRY MprAdminGetErrorString( DWORD, LPWSTR * ); DWORD APIENTRY MprAdminGetPDCServer( const WCHAR *, const WCHAR *, LPWSTR ); DWORD APIENTRY MprAdminInterfaceConnect( MPR_SERVER_HANDLE, HANDLE, HANDLE, BOOL ); DWORD APIENTRY MprAdminInterfaceCreate( MPR_SERVER_HANDLE, DWORD, LPBYTE, HANDLE * ); DWORD APIENTRY MprAdminInterfaceDelete( MPR_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminInterfaceDisconnect( MPR_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminInterfaceGetCredentials( LPWSTR, LPWSTR, LPWSTR, LPWSTR, LPWSTR ); DWORD APIENTRY MprAdminInterfaceGetHandle( MPR_SERVER_HANDLE, LPWSTR, HANDLE *, BOOL ); DWORD APIENTRY MprAdminInterfaceGetInfo( MPR_SERVER_HANDLE, HANDLE, DWORD, LPBYTE * ); DWORD APIENTRY MprAdminInterfaceQueryUpdateResult( MPR_SERVER_HANDLE, HANDLE, DWORD, LPDWORD ); DWORD APIENTRY MprAdminInterfaceSetCredentials( LPWSTR, LPWSTR, LPWSTR, LPWSTR, LPWSTR ); DWORD APIENTRY MprAdminInterfaceSetInfo( MPR_SERVER_HANDLE, HANDLE, DWORD, LPBYTE ); DWORD APIENTRY MprAdminInterfaceTransportAdd( MPR_SERVER_HANDLE, HANDLE, DWORD, LPBYTE, DWORD ); DWORD APIENTRY MprAdminInterfaceTransportGetInfo( MPR_SERVER_HANDLE, HANDLE, DWORD, LPBYTE *, LPDWORD ); DWORD APIENTRY MprAdminInterfaceTransportRemove( MPR_SERVER_HANDLE, HANDLE, DWORD ); DWORD APIENTRY MprAdminInterfaceTransportSetInfo( MPR_SERVER_HANDLE, HANDLE, DWORD, LPBYTE, DWORD ); DWORD APIENTRY MprAdminInterfaceUpdatePhonebookInfo( MPR_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminInterfaceUpdateRoutes( MPR_SERVER_HANDLE, HANDLE, DWORD, HANDLE ); BOOL APIENTRY MprAdminIsServiceRunning( LPWSTR ); DWORD APIENTRY MprAdminMIBBufferFree( LPVOID ); DWORD APIENTRY MprAdminMIBEntryCreate( MIB_SERVER_HANDLE, DWORD, DWORD, LPVOID, DWORD ); DWORD APIENTRY MprAdminMIBEntryDelete( MIB_SERVER_HANDLE, DWORD, DWORD, LPVOID, DWORD ); DWORD APIENTRY MprAdminMIBEntryGet( MIB_SERVER_HANDLE, DWORD, DWORD, LPVOID, DWORD, LPVOID *, LPDWORD ); DWORD APIENTRY MprAdminMIBEntryGetFirst( MIB_SERVER_HANDLE, DWORD, DWORD, LPVOID, DWORD, LPVOID *, LPDWORD ); DWORD APIENTRY MprAdminMIBEntryGetNext( MIB_SERVER_HANDLE, DWORD, DWORD, LPVOID, DWORD, LPVOID *, LPDWORD ); DWORD APIENTRY MprAdminMIBEntrySet( MIB_SERVER_HANDLE, DWORD, DWORD, LPVOID, DWORD ); DWORD APIENTRY MprAdminMIBServerConnect( LPWSTR, MIB_SERVER_HANDLE * ); VOID APIENTRY MprAdminMIBServerDisconnect( MIB_SERVER_HANDLE ); DWORD APIENTRY MprAdminPortClearStatus( RAS_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminPortDisconnect( RAS_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminPortEnum( RAS_SERVER_HANDLE, DWORD, HANDLE, LPBYTE *, DWORD, LPDWORD, LPDWORD, LPDWORD ); DWORD APIENTRY MprAdminPortGetInfo( RAS_SERVER_HANDLE, DWORD, HANDLE, LPBYTE * ); DWORD APIENTRY MprAdminPortReset( RAS_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminServerConnect( LPWSTR, MPR_SERVER_HANDLE * ); VOID APIENTRY MprAdminServerDisconnect( MPR_SERVER_HANDLE ); DWORD APIENTRY MprAdminServerGetInfo( MPR_SERVER_HANDLE, DWORD, LPBYTE * ); DWORD APIENTRY MprAdminTransportGetInfo( MPR_SERVER_HANDLE, DWORD, LPBYTE *, LPDWORD, LPBYTE *, LPDWORD ); DWORD APIENTRY MprAdminTransportSetInfo( MPR_SERVER_HANDLE, DWORD, LPBYTE, DWORD, LPBYTE, DWORD ); DWORD APIENTRY MprAdminUserGetInfo( const WCHAR *, const WCHAR *, DWORD, LPBYTE ); DWORD APIENTRY MprAdminUserSetInfo( const WCHAR *, const WCHAR *, DWORD, const LPBYTE ); DWORD APIENTRY MprConfigGetFriendlyName( HANDLE, PWCHAR, PWCHAR, DWORD ); DWORD APIENTRY MprConfigGetGuidName( HANDLE, PWCHAR, PWCHAR, DWORD ); DWORD APIENTRY MprConfigInterfaceCreate( HANDLE, DWORD, LPBYTE, HANDLE * ); DWORD APIENTRY MprConfigInterfaceDelete( HANDLE, HANDLE ); DWORD APIENTRY MprConfigInterfaceEnum( HANDLE, DWORD, LPBYTE *, DWORD, LPDWORD, LPDWORD, LPDWORD ); DWORD APIENTRY MprConfigInterfaceGetHandle( HANDLE, LPWSTR, HANDLE * ); DWORD APIENTRY MprConfigInterfaceGetInfo( HANDLE, HANDLE, DWORD, LPBYTE *, LPDWORD ); DWORD APIENTRY MprConfigInterfaceSetInfo( HANDLE, HANDLE, DWORD, LPBYTE ); DWORD APIENTRY MprConfigInterfaceTransportAdd( HANDLE, HANDLE, DWORD, LPWSTR, LPBYTE, DWORD, HANDLE * ); DWORD APIENTRY MprConfigInterfaceTransportEnum( HANDLE, HANDLE, DWORD, LPBYTE *, DWORD, LPDWORD, LPDWORD, LPDWORD ); DWORD APIENTRY MprConfigInterfaceTransportGetHandle( HANDLE, HANDLE, DWORD, HANDLE * ); DWORD APIENTRY MprConfigInterfaceTransportGetInfo( HANDLE, HANDLE, HANDLE, LPBYTE *, LPDWORD ); DWORD APIENTRY MprConfigInterfaceTransportRemove( HANDLE, HANDLE, HANDLE ); DWORD APIENTRY MprConfigInterfaceTransportSetInfo( HANDLE, HANDLE, HANDLE, LPBYTE, DWORD ); DWORD APIENTRY MprConfigServerBackup( HANDLE, LPWSTR ); DWORD APIENTRY MprConfigServerConnect( LPWSTR, HANDLE * ); VOID APIENTRY MprConfigServerDisconnect( HANDLE ); DWORD APIENTRY MprConfigServerFree( LPVOID ); DWORD APIENTRY MprConfigServerGetInfo( HANDLE, DWORD, LPBYTE * ); DWORD APIENTRY MprConfigServerInstall( DWORD, PVOID ); DWORD APIENTRY MprConfigServerRefresh( HANDLE ); DWORD APIENTRY MprConfigServerRestore( HANDLE, LPWSTR ); DWORD APIENTRY MprConfigTransportCreate( HANDLE, DWORD, LPWSTR, LPBYTE, DWORD, LPBYTE, DWORD, LPWSTR, HANDLE * ); DWORD APIENTRY MprConfigTransportDelete( HANDLE, HANDLE ); DWORD APIENTRY MprConfigTransportEnum( HANDLE, DWORD, LPBYTE *, DWORD, LPDWORD, LPDWORD, LPDWORD ); DWORD APIENTRY MprConfigTransportGetHandle( HANDLE, DWORD, HANDLE * ); DWORD APIENTRY MprConfigTransportGetInfo( HANDLE, HANDLE, LPBYTE *, LPDWORD, LPBYTE *, LPDWORD, LPWSTR * ); DWORD APIENTRY MprConfigTransportSetInfo( HANDLE, HANDLE, LPBYTE, DWORD, LPBYTE, DWORD, LPWSTR ); DWORD APIENTRY MprInfoBlockAdd( LPVOID, DWORD, DWORD, DWORD, LPBYTE, LPVOID * ); DWORD APIENTRY MprInfoBlockFind( LPVOID, DWORD, LPDWORD, LPDWORD, LPBYTE * ); DWORD APIENTRY MprInfoBlockQuerySize( LPVOID ); DWORD APIENTRY MprInfoBlockRemove( LPVOID, DWORD, LPVOID * ); DWORD APIENTRY MprInfoBlockSet( LPVOID, DWORD, DWORD, DWORD, LPBYTE, LPVOID * ); DWORD APIENTRY MprInfoCreate( DWORD, LPVOID * ); DWORD APIENTRY MprInfoDelete( LPVOID ); DWORD APIENTRY MprInfoDuplicate( LPVOID, LPVOID * ); DWORD APIENTRY MprInfoRemoveAll( LPVOID, LPVOID * ); DWORD APIENTRY MprSetupIpInIpInterfaceFriendlyNameCreate( PWCHAR, PMPR_IPINIP_INTERFACE_0 ); DWORD APIENTRY MprSetupIpInIpInterfaceFriendlyNameDelete( PWCHAR, GUID * ); DWORD APIENTRY MprSetupIpInIpInterfaceFriendlyNameEnum( PWCHAR, LPBYTE *, LPDWORD ); DWORD APIENTRY MprSetupIpInIpInterfaceFriendlyNameFree( LPVOID ); #if (WINVER >= 0x0500) DWORD APIENTRY MprAdminDeregisterConnectionNotification( MPR_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminDeviceEnum( MPR_SERVER_HANDLE, DWORD, LPBYTE *, LPDWORD ); DWORD APIENTRY MprAdminInterfaceDeviceGetInfo( MPR_SERVER_HANDLE, HANDLE, DWORD, DWORD, LPBYTE * ); DWORD APIENTRY MprAdminInterfaceDeviceSetInfo( MPR_SERVER_HANDLE, HANDLE, DWORD, DWORD, LPBYTE ); DWORD APIENTRY MprAdminInterfaceGetCredentialsEx( MPR_SERVER_HANDLE, HANDLE, DWORD, LPBYTE * ); DWORD APIENTRY MprAdminInterfaceSetCredentialsEx( MPR_SERVER_HANDLE, HANDLE, DWORD, LPBYTE ); DWORD APIENTRY MprAdminRegisterConnectionNotification( MPR_SERVER_HANDLE, HANDLE ); DWORD APIENTRY MprAdminSendUserMessage( MPR_SERVER_HANDLE, HANDLE, LPWSTR ); DWORD APIENTRY MprAdminTransportCreate( MPR_SERVER_HANDLE, DWORD, LPWSTR, LPBYTE, DWORD, LPBYTE, DWORD, LPWSTR ); #endif #if (WINVER >= 0x0501) DWORD APIENTRY MprAdminConnectionRemoveQuarantine( HANDLE, HANDLE, BOOL ); DWORD APIENTRY MprAdminEstablishDomainRasServer( PWCHAR, PWCHAR, BOOL ); DWORD APIENTRY MprAdminIsDomainRasServer( PWCHAR, PWCHAR, PBOOL ); DWORD APIENTRY MprAdminServerGetCredentials( MPR_SERVER_HANDLE, DWORD, LPBYTE * ); DWORD APIENTRY MprAdminServerSetCredentials( MPR_SERVER_HANDLE, DWORD, LPBYTE ); DWORD APIENTRY MprAdminServerSetInfo( MPR_SERVER_HANDLE, DWORD, LPBYTE ); DWORD APIENTRY MprConfigServerSetInfo( MPR_SERVER_HANDLE, DWORD, LPBYTE ); #endif #if (WINVER >= 0x0600) DWORD APIENTRY MprConfigFilterGetInfo( HANDLE, DWORD, LPBYTE ); DWORD APIENTRY MprConfigFilterSetInfo( HANDLE, DWORD, LPBYTE ); #endif #if (WINVER >= 0x0601) DWORD APIENTRY MprAdminConnectionEnumEx( RAS_SERVER_HANDLE, PMPRAPI_OBJECT_HEADER, DWORD, LPDWORD, LPDWORD, PRAS_CONNECTION_EX *, LPDWORD ); DWORD APIENTRY MprAdminConnectionGetInfoEx( RAS_SERVER_HANDLE, HANDLE, PRAS_CONNECTION_EX ); DWORD APIENTRY MprAdminIsServiceInitialized( LPWSTR, BOOL * ); DWORD APIENTRY MprAdminServerGetInfoEx( MPR_SERVER_HANDLE, MPR_SERVER_EX * ); DWORD APIENTRY MprAdminServerSetInfoEx( MPR_SERVER_HANDLE, MPR_SERVER_SET_CONFIG_EX * ); DWORD APIENTRY MprAdminUpdateConnection( RAS_SERVER_HANDLE, HANDLE, PRAS_UPDATE_CONNECTION ); DWORD APIENTRY MprConfigServerGetInfoEx( HANDLE, MPR_SERVER_EX * ); DWORD APIENTRY MprConfigServerSetInfoEx( HANDLE, MPR_SERVER_SET_CONFIG_EX * ); #endif /* Functions implemented by administration providers */ BOOL APIENTRY MprAdminAcceptNewConnection( RAS_CONNECTION_0 *, RAS_CONNECTION_1 * ); BOOL APIENTRY MprAdminAcceptNewLink( RAS_PORT_0 *, RAS_PORT_1 * ); VOID APIENTRY MprAdminConnectionHangupNotification( RAS_CONNECTION_0 *, RAS_CONNECTION_1 * ); DWORD APIENTRY MprAdminGetIpAddressForUser( WCHAR *, WCHAR *, DWORD *, BOOL * ); VOID APIENTRY MprAdminLinkHangupNotification( RAS_PORT_0 *, RAS_PORT_1 * ); VOID APIENTRY MprAdminReleaseIpAddress( WCHAR *, WCHAR *, DWORD * ); #if (WINVER >= 0x0500) BOOL APIENTRY MprAdminAcceptNewConnection2( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 * ); VOID APIENTRY MprAdminConnectionHangupNotification2( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 * ); DWORD APIENTRY MprAdminInitializeDll( VOID ); DWORD APIENTRY MprAdminTerminateDll( VOID ); #endif #if (WINVER >= 0x0600) BOOL APIENTRY MprAdminAcceptNewConnection3( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 *, RAS_CONNECTION_3 * ); BOOL APIENTRY MprAdminAcceptReauthentication( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 *, RAS_CONNECTION_3 * ); VOID APIENTRY MprAdminConnectionHangupNotification3( RAS_CONNECTION_0 *, RAS_CONNECTION_1 *, RAS_CONNECTION_2 *, RAS_CONNECTION_3 * ); DWORD APIENTRY MprAdminGetIpv6AddressForUser( WCHAR *, WCHAR *, IN6_ADDR *, BOOL * ); VOID APIENTRY MprAdminReleaseIpv6AddressForUser( WCHAR *, WCHAR *, IN6_ADDR * ); #endif #if (WINVER >= 0x0601) BOOL APIENTRY MprAdminAcceptNewConnectionEx( RAS_CONNECTION_EX * ); BOOL APIENTRY MprAdminAcceptReauthenticationEx( RAS_CONNECTION_EX * ); void APIENTRY MprAdminConnectionHangupNotificationEx( RAS_CONNECTION_EX * ); DWORD APIENTRY MprAdminInitializeDllEx( PMPRAPI_ADMIN_DLL_CALLBACKS ); #endif /* Functions implemented as macros */ #define MprInfoBlockExists( p1, p2 ) \ (MprInfoBlockFind( p1, p2, NULL, NULL, NULL ) == NO_ERROR) #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __ROUTING_MPRADMIN_H__ */