📄 mprapi.h
字号:
/*++
Copyright (c) 1995 -1999 Microsoft Corporation
Module Name:
mpradmin.h
Abstract:
This file contains the structures, defines and function prototypes for the
following APIs:
MprAdminIsServiceRunning
MprAdminServerConnect
MprAdminServerDisconnect
MprAdminBufferFree
MprAdminPortEnum
MprAdminConnectionEnum
MprAdminPortGetInfo
MprAdminConnectionGetInfo
MprAdminPortClearStats
MprAdminPortReset
MprAdminConnectionClearStats
MprAdminPortDisconnect
MprAdminGetErrorString
MprAdminAcceptNewConnection
MprAdminAcceptNewLink
MprAdminConnectionHangupNotification
MprAdminLinkHangupNotification
MprAdminGetIpAddressForUser
MprAdminReleaseIpAddress
MprAdminInitializeDll
MprAdminTerminateDll
MprAdminAcceptNewConnection2
MprAdminConnectionHangupNotification2
MprAdminUserGetInfo
MprAdminUserSetInfo
MprAdminSendUserMessage
MprAdminGetPDCServer
MprAdminRegisterConnectionNotification
MprAdminDeregisterConnectionNotification
MprAdminIsServiceRunning
MprAdminServerConnect
MprAdminServerDisconnect
MprAdminBufferFree
MprAdminServerGetInfo
MprAdminGetErrorString
MprAdminTransportCreate
MprAdminTransportSetInfo
MprAdminTransportGetInfo
MprAdminInterfaceCreate
MprAdminInterfaceDelete
MprAdminInterfaceGetInfo
MprAdminInterfaceTransportAdd
MprAdminInterfaceTransportGetInfo
MprAdminInterfaceTransportSetInfo
MprAdminInterfaceTransportRemove
MprAdminInterfaceGetHandle
MprAdminInterfaceSetCredentials
MprAdminInterfaceGetCredentials
MprAdminInterfaceEnum
MprAdminInterfaceConnect
MprAdminInterfaceDisconnect
MprAdminInterfaceUpdateRoutes
MprAdminInterfaceQueryUpdateResult
MprAdminInterfaceUpdatePhonebookInfo
MprAdminMIBServerConnect
MprAdminMIBServerDisconnect
MprAdminMIBBufferFree
MprAdminMIBEntryCreate
MprAdminMIBEntryDelete
MprAdminMIBEntryGet
MprAdminMIBEntrySet
MprAdminMIBEntryGetFirst
MprAdminMIBEntryGetNext
MprAdminMIBSetTrapInfo
MprAdminMIBGetTrapInfo
All MIB APIs operate with the conceptual MIB row.
MprConfigServerConnect
MprConfigServerDisconnect
MprConfigBufferFree
MprConfigServerGetInfo
MprConfigServerBackup
MprConfigServerRestore
MprConfigTransportCreate
MprConfigTransportDelete
MprConfigTransportGetHandle
MprConfigTransportSetInfo
MprConfigTransportGetInfo
MprConfigTransportEnum
MprConfigInterfaceCreate
MprConfigInterfaceDelete
MprConfigInterfaceGetHandle
MprConfigInterfaceGetInfo
MprConfigInterfaceEnum
MprConfigInterfaceTransportAdd
MprConfigInterfaceTransportRemove
MprConfigInterfaceTransportGetHandle
MprConfigInterfaceTransportGetInfo
MprConfigInterfaceTransportSetInfo
MprConfigInterfaceTransportEnum
MprSetupIpInIpInterfaceFriendlyNameEnum
MprSetupIpInIpInterfaceFriendlyNameFree
MprSetupIpInIpInterfaceFriendlyNameCreate
MprSetupIpInIpInterfaceFriendlyNameDelete
--*/
#ifndef __ROUTING_MPRADMIN_H__
#define __ROUTING_MPRADMIN_H__
#if _MSC_VER > 1000
#pragma once
#endif
#include <lmcons.h>
#include <ras.h>
#ifdef __cplusplus
extern "C" {
#endif
//#if(WINVER >= 0x0403)
//
// Name of the Routing and RemoteAccess Service
//
#define RRAS_SERVICE_NAME TEXT("RemoteAccess")
//
// Protocol IDs
//
#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
//
// MPR Interface structures and definitions.
//
//
// MPR Interface types
//
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
{
IN OUT WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
OUT HANDLE hInterface;
IN OUT BOOL fEnabled;
IN OUT ROUTER_INTERFACE_TYPE dwIfType;
OUT ROUTER_CONNECTION_STATE dwConnectionState;
OUT DWORD fUnReachabilityReasons;
OUT 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;
#if(WINVER >= 0x0500)
typedef struct _MPR_INTERFACE_1
{
IN OUT WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
OUT HANDLE hInterface;
IN OUT BOOL fEnabled;
IN OUT ROUTER_INTERFACE_TYPE dwIfType;
OUT ROUTER_CONNECTION_STATE dwConnectionState;
OUT DWORD fUnReachabilityReasons;
OUT DWORD dwLastError;
OUT LPWSTR lpwsDialoutHoursRestriction;
}
MPR_INTERFACE_1, *PMPR_INTERFACE_1;
//
// MPR_INTERFACE_2 definitions
//
#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
//
// MPR_INTERFACE_2 'dwfOptions' bit flags.
//
#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
//
// MPR_INTERFACE_2 'dwProtocols' bit flags.
//
#define MPRNP_Ipx RASNP_Ipx
#define MPRNP_Ip RASNP_Ip
//
// MPR_INTERFACE_2 'szDeviceType' default strings.
//
#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
//
// MPR_INTERFACE_2 'dwType' settings
//
#define MPRET_Phone RASET_Phone
#define MPRET_Vpn RASET_Vpn
#define MPRET_Direct RASET_Direct
//
// MPR_INTERFACE_2 'dwDialMode' values.
//
#define MPRDM_DialAll RASEDM_DialAll
#define MPRDM_DialAsNeeded RASEDM_DialAsNeeded
//
// MPR_INTERFACE_2 'dwIdleDisconnectSeconds' constants.
//
#define MPRIDS_Disabled RASIDS_Disabled
#define MPRIDS_UseGlobalValue RASIDS_UseGlobalValue
//
// MPR_INTERFACE_2 encryption types.
//
#define MPR_ET_None ET_None
#define MPR_ET_Require ET_Require
#define MPR_ET_RequireMax ET_RequireMax
#define MPR_ET_Optional ET_Optional
//
// MPR_INTERFACE_2 Vpn strategies
//
#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
//
// Used to create/get/set a demand dial interface plus its
// ras configuration.
//
typedef struct _MPR_INTERFACE_2
{
IN OUT WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1];
OUT HANDLE hInterface;
IN OUT BOOL fEnabled;
IN OUT ROUTER_INTERFACE_TYPE dwIfType;
OUT ROUTER_CONNECTION_STATE dwConnectionState;
OUT DWORD fUnReachabilityReasons;
OUT DWORD dwLastError;
//
// Demand dial-specific properties
//
DWORD dwfOptions;
//
// Location/phone number
//
WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
PWCHAR szAlternates;
//
// PPP/Ip
//
DWORD ipaddr;
DWORD ipaddrDns;
DWORD ipaddrDnsAlt;
DWORD ipaddrWins;
DWORD ipaddrWinsAlt;
//
// NetProtocols
//
DWORD dwfNetProtocols;
//
// Device
//
WCHAR szDeviceType[ MPR_MaxDeviceType + 1 ];
WCHAR szDeviceName[ MPR_MaxDeviceName + 1 ];
//
// X.25
//
WCHAR szX25PadType[ MPR_MaxPadType + 1 ];
WCHAR szX25Address[ MPR_MaxX25Address + 1 ];
WCHAR szX25Facilities[ MPR_MaxFacilities + 1 ];
WCHAR szX25UserData[ MPR_MaxUserData + 1 ];
DWORD dwChannels;
//
// Multilink
//
DWORD dwSubEntries;
DWORD dwDialMode;
DWORD dwDialExtraPercent;
DWORD dwDialExtraSampleSeconds;
DWORD dwHangUpExtraPercent;
DWORD dwHangUpExtraSampleSeconds;
//
// Idle timeout
//
DWORD dwIdleDisconnectSeconds;
//
// Entry Type
//
DWORD dwType;
//
// EncryptionType
//
DWORD dwEncryptionType;
//
// EAP information
//
DWORD dwCustomAuthKey;
DWORD dwCustomAuthDataSize;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -