mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 00:55:09 +00:00
1002 lines
41 KiB
C
1002 lines
41 KiB
C
/**
|
|
* 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__ */
|