📄 mprapi.h
字号:
/* * mprapi.h - Routing and Remote Access Services * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may use, * modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef _MPRAPI_H#define _MPRAPI_H#if __GNUC__ >= 3#pragma GCC system_header#endif#include <ras.h>#include <lmcons.h>#ifdef __cplusplusextern "C" {#endif#if (_WIN32_WINNT >= 0x0500)/*--- Router Management Reference - Router Management Enumerated Types */typedef enum _ROUTER_CONNECTION_STATE { ROUTER_IF_STATE_UNREACHABLE, ROUTER_IF_STATE_DISCONNECTED, ROUTER_IF_STATE_CONNECTING, ROUTER_IF_STATE_CONNECTED} ROUTER_CONNECTION_STATE;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;#define MPR_INTERFACE_ADMIN_DISABLED 0x00000002#define MPR_INTERFACE_CONNECTION_FAILURE 0x00000004#define MPR_INTERFACE_DIALOUT_HOURS_RESTRICTION 0x00000010#define MPR_INTERFACE_OUT_OF_RESOURCES 0x00000001#define MPR_INTERFACE_SERVICE_PAUSED 0x00000008#define MPR_INTERFACE_NO_MEDIA_SENSE 0x00000020#define MPR_INTERFACE_NO_DEVICE 0x00000040/*--- Router Management MIB Reference - Transport and Protocol Constants */#define PID_ATALK 0x00000029#define PID_IP 0x00000021#define PID_IPX 0x0000002B#define PID_NBF 0x0000003F/*--- Remote Access Service Administration Reference - RAS Administration Enumerated Types */typedef enum _RAS_HARDWARE_CONDITION { RAS_HARDWARE_OPERATIONAL, RAS_HARDWARE_FAILURE} RAS_HARDWARE_CONDITION;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;/*--- Remote Access Service Administration Reference - RAS Administration Structures */#define ATADDRESSLEN 32typedef struct _PPP_ATCP_INFO { DWORD dwError; WCHAR wszAddress[ATADDRESSLEN+1];} PPP_ATCP_INFO;typedef struct _PPP_CCP_INFO { DWORD dwError; DWORD dwCompressionAlgorithm; DWORD dwOptions; DWORD dwRemoteCompressionAlgorithm; DWORD dwRemoteOptions;} PPP_CCP_INFO;#define RASCCPCA_STAC 0x00000005#define RASCCPCA_MPPC 0x00000006#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#define IPADDRESSLEN 15typedef struct _PPP_IPCP_INFO { DWORD dwError; WCHAR wszAddress[IPADDRESSLEN+1]; WCHAR wszRemoteAddress[IPADDRESSLEN+1];} PPP_IPCP_INFO;typedef struct _PPP_IPCP_INFO2 { DWORD dwError; WCHAR wszAddress[IPADDRESSLEN+1]; WCHAR wszRemoteAddress[IPADDRESSLEN+1]; DWORD dwOptions; DWORD dwRemoteOptons;} PPP_IPCP_INFO2;#define IPXADDRESSLEN 22typedef struct _PPP_IPXCP_INFO { DWORD dwError; WCHAR wszAddress[IPXADDRESSLEN+1];} PPP_IPXCP_INFO;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;#define PPP_LCP_PAP 0x0000C023#define PPP_LCP_SPAP 0x0000C027#define PPP_LCP_CHAP 0x0000C223#define PPP_LCP_EAP 0x0000C227#define PPP_LCP_CHAP_MD5 0x00000005#define PPP_LCP_CHAP_MS 0x00000080#define PPP_LCP_CHAP_MSV2 0x00000081#define PPP_LCP_MULTILINK_FRAMING 0x00000001typedef struct _PPP_NBFCP_INFO { DWORD dwError; WCHAR wszWksta[NETBIOS_NAME_LEN+1];} PPP_NBFCP_INFO;typedef struct _PPP_INFO { PPP_NBFCP_INFO nbf; PPP_IPCP_INFO ip; PPP_IPXCP_INFO ipx; PPP_ATCP_INFO at;} PPP_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 MAX_INTERFACE_NAME_LEN 256typedef 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;#define RAS_FLAGS_PPP_CONNECTION 0x00000001#define RAS_FLAGS_MESSENGER_PRESENT 0x00000002#define RAS_FLAGS_RAS_CONNECTION 0x00000004#define RAS_FLAGS_QUARANTINE_PRESENT 0x00000008typedef 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 MAX_PORT_NAME 16#define MAX_MEDIA_NAME 16#define MAX_DEVICE_NAME 128#define MAX_DEVICETYPE_NAME 16typedef 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 MAX_PHONE_NUMBER_LEN 128typedef struct _RAS_USER_0 { BYTE bfPrivilege; WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN+1];} RAS_USER_0,*PRAS_USER_0;#define RASPRIV_NoCallback 0x01#define RASPRIV_AdminSetCallback 0x02#define RASPRIV_CallerSetCallback 0x04#define RASPRIV_DialinPrivilege 0x08#define RASPRIV_CallbackType 0x07typedef struct _RAS_USER_1 { BYTE bfPrivilege; WCHAR wszPhoneNumber[MAX_PHONE_NUMBER_LEN+1]; BYTE bfPrivilege2;} RAS_USER_1,*PRAS_USER_1;#define RASPRIV2_DialinPolicy 0x01/*--- Router Management Reference - Router Management Structures */typedef struct _MPR_CREDENTIALSEX_0 { DWORD dwSize; LPBYTE lpbCredentialsInfo;} MPR_CREDENTIALSEX_0,*PMPR_CREDENTIALSEX_0;#if (_WIN32_WINNT >= 0x0502)typedef struct _MPR_CREDENTIALSEX_1 { DWORD dwSize; LPBYTE lpbCredentialsInfo;} MPR_CREDENTIALSEX_1,*PMPR_CREDENTIALSEX_1;#endif#define MPR_MaxDeviceType RAS_MaxDeviceType#define MPR_MaxDeviceName RAS_MaxDeviceName#define MPR_MaxPadType RAS_MaxPadType#define MPR_MaxX25Address RAS_MaxX25Address#define MPR_MaxFacilities RAS_MaxFacilities#define MPR_MaxUserData RAS_MaxUserData#define MPR_MaxPhoneNumber RAS_MaxPhoneNumbertypedef 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;#define MAX_TRANSPORT_NAME_LEN 40typedef struct _MPR_IFTRANSPORT_0 { DWORD dwTransportId; HANDLE hIfTransport; WCHAR wszIfTransportName[MAX_TRANSPORT_NAME_LEN+1];} MPR_IFTRANSPORT_0,*PMPR_IFTRANSPORT_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,*PMPR_INTERFACE_0;typedef struct _MPR_INTERFACE_1 { WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN+1]; HANDLE hInterface; BOOL fEnabled; ROUTER_INTERFACE_TYPE IfType; ROUTER_CONNECTION_STATE dwConnectionState;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -