📄 mprapi.h
字号:
/*++
Copyright (c) 1995 -1997 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
MprAdminUserGetInfo
MprAdminUserSetInfo
MprAdminGetPDCServer
MprAdminIsServiceRunning
MprAdminServerConnect
MprAdminServerDisconnect
MprAdminBufferFree
MprAdminServerGetInfo
MprAdminGetErrorString
MprAdminTransportSetInfo
MprAdminTransportGetInfo
MprAdminInterfaceCreate
MprAdminInterfaceDelete
MprAdminInterfaceGetInfo
MprAdminInterfaceTransportAdd
MprAdminInterfaceTransportGetInfo
MprAdminInterfaceTransportSetInfo
MprAdminInterfaceTransportProtoDisable
MprAdminInterfaceTransportProtoEnable
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
--*/
#ifndef __ROUTING_MPRADMIN_H__
#define __ROUTING_MPRADMIN_H__
#include <lmcons.h>
#ifdef __cplusplus
extern "C" {
#endif
//
// 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 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_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
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_TRANSPORT_0
{
OUT DWORD dwTransportId;
OUT HANDLE hTransport;
OUT WCHAR wszTransportName[MAX_TRANSPORT_NAME_LEN+1];
} MPR_TRANSPORT_0, *PMPR_TRANSPORT_0;
typedef struct _MPR_IFTRANSPORT_0
{
OUT DWORD dwTransportId;
OUT HANDLE hIfTransport;
OUT WCHAR wszIfTransportName[MAX_TRANSPORT_NAME_LEN+1];
} MPR_IFTRANSPORT_0, *PMPR_IFTRANSPORT_0;
typedef struct _MPR_SERVER_0
{
OUT BOOL fLanOnlyMode;
OUT DWORD dwUpTime; // In seconds
OUT DWORD dwTotalPorts;
OUT DWORD dwPortsInUse;
} MPR_SERVER_0, *PMPR_SERVER_0;
//
// Port condition codes
//
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;
//
// Hardware condition codes
//
typedef enum _RAS_HARDWARE_CONDITION
{
RAS_HARDWARE_OPERATIONAL,
RAS_HARDWARE_FAILURE
} RAS_HARDWARE_CONDITION;
typedef struct _RAS_PORT_0
{
OUT HANDLE hPort;
OUT HANDLE hConnection;
OUT RAS_PORT_CONDITION dwPortCondition;
OUT DWORD dwTotalNumberOfCalls;
OUT DWORD dwConnectDuration; // In seconds
OUT WCHAR wszPortName[ MAX_PORT_NAME + 1 ];
OUT WCHAR wszMediaName[ MAX_MEDIA_NAME + 1 ];
OUT WCHAR wszDeviceName[ MAX_DEVICE_NAME + 1 ];
OUT WCHAR wszDeviceType[ MAX_DEVICETYPE_NAME + 1 ];
} RAS_PORT_0, *PRAS_PORT_0;
typedef struct _RAS_PORT_1
{
OUT HANDLE hPort;
OUT HANDLE hConnection;
OUT RAS_HARDWARE_CONDITION dwHardwareCondition;
OUT DWORD dwLineSpeed; // in bits/second
OUT DWORD dwBytesXmited;
OUT DWORD dwBytesRcved;
OUT DWORD dwFramesXmited;
OUT DWORD dwFramesRcved;
OUT DWORD dwCrcErr;
OUT DWORD dwTimeoutErr;
OUT DWORD dwAlignmentErr;
OUT DWORD dwHardwareOverrunErr;
OUT DWORD dwFramingErr;
OUT DWORD dwBufferOverrunErr;
OUT DWORD dwCompressionRatioIn;
OUT DWORD dwCompressionRatioOut;
} RAS_PORT_1, *PRAS_PORT_1;
//
// Maximum length of address string, e.g. "255.255.255.255" for IP.
//
#define IPADDRESSLEN 15
#define IPXADDRESSLEN 22
#define ATADDRESSLEN 32
typedef struct _PPP_NBFCP_INFO
{
OUT DWORD dwError;
OUT WCHAR wszWksta[ NETBIOS_NAME_LEN + 1 ];
}
PPP_NBFCP_INFO;
typedef struct _PPP_IPCP_INFO
{
OUT DWORD dwError;
OUT WCHAR wszAddress[ IPADDRESSLEN + 1 ];
OUT WCHAR wszRemoteAddress[ IPADDRESSLEN + 1 ];
}
PPP_IPCP_INFO;
typedef struct _PPP_IPXCP_INFO
{
OUT DWORD dwError;
OUT WCHAR wszAddress[ IPXADDRESSLEN + 1 ];
}
PPP_IPXCP_INFO;
typedef struct _PPP_ATCP_INFO
{
OUT DWORD dwError;
OUT WCHAR wszAddress[ ATADDRESSLEN + 1 ];
}
PPP_ATCP_INFO;
typedef struct _PPP_INFO
{
OUT PPP_NBFCP_INFO nbf;
OUT PPP_IPCP_INFO ip;
OUT PPP_IPXCP_INFO ipx;
OUT PPP_ATCP_INFO at;
} PPP_INFO;
//
// Possible bits set in Connection Flags field
//
#define RAS_FLAGS_PPP_CONNECTION 0x00000001
#define RAS_FLAGS_MESSENGER_PRESENT 0x00000002
#define RAS_FLAGS_RAS_CONNECTION 0x00000004
#define RAS_FLAGS_ARAP_CONNECTION 0x00000008
typedef struct _RAS_CONNECTION_0
{
OUT HANDLE hConnection;
OUT HANDLE hInterface;
OUT DWORD dwConnectDuration; // In seconds
OUT ROUTER_INTERFACE_TYPE dwInterfaceType;
OUT DWORD dwConnectionFlags;
OUT WCHAR wszInterfaceName[ MAX_INTERFACE_NAME_LEN + 1 ];
OUT WCHAR wszUserName[ UNLEN + 1 ];
OUT WCHAR wszLogonDomain[ DNLEN + 1 ];
OUT WCHAR wszRemoteComputer[ NETBIOS_NAME_LEN + 1 ];
} RAS_CONNECTION_0, *PRAS_CONNECTION_0;
typedef struct _RAS_CONNECTION_1
{
OUT HANDLE hConnection;
OUT HANDLE hInterface;
OUT PPP_INFO PppInfo;
OUT DWORD dwBytesXmited;
OUT DWORD dwBytesRcved;
OUT DWORD dwFramesXmited;
OUT DWORD dwFramesRcved;
OUT DWORD dwCrcErr;
OUT DWORD dwTimeoutErr;
OUT DWORD dwAlignmentErr;
OUT DWORD dwHardwareOverrunErr;
OUT DWORD dwFramingErr;
OUT DWORD dwBufferOverrunErr;
OUT DWORD dwCompressionRatioIn;
OUT DWORD dwCompressionRatioOut;
} RAS_CONNECTION_1, *PRAS_CONNECTION_1;
//
// Structures used by the MPRADMIN USER APIs. Use level 0 to get/set this
// structure.
//
//
// Bits indicating user's Remote Access privileges and mask to isolate
// call back privilege.
//
// Note: Bit 0 MUST represent NoCallback due to a quirk of the "userparms"
// storage method. When a new LAN Manager user is created, bit 0 of the
// userparms field is set to 1 and all other bits are 0. These bits are
// arranged so this "no Dial-In info" state maps to the "default Dial-In
// privilege" state.
#define RASPRIV_NoCallback 0x01
#define RASPRIV_AdminSetCallback 0x02
#define RASPRIV_CallerSetCallback 0x04
#define RASPRIV_DialinPrivilege 0x08
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -