📄 mprapi.h
字号:
LPBYTE lpbCustomAuthData;
//
// Guid of the connection
//
GUID guidId;
//
// Vpn Strategy
//
DWORD dwVpnStrategy;
} MPR_INTERFACE_2, *PMPR_INTERFACE_2;
//
// Used to set/get per-link information for multilinked demand
// dial interfaces.
//
typedef struct _MPR_DEVICE_0
{
//
// Device
//
WCHAR szDeviceType[ MPR_MaxDeviceType + 1 ];
WCHAR szDeviceName[ MPR_MaxDeviceName + 1 ];
}
MPR_DEVICE_0, *PMPR_DEVICE_0;
typedef struct _MPR_DEVICE_1
{
//
// Device
//
WCHAR szDeviceType[ MPR_MaxDeviceType + 1 ];
WCHAR szDeviceName[ MPR_MaxDeviceName + 1 ];
//
// Phone numbers
//
WCHAR szLocalPhoneNumber[ MPR_MaxPhoneNumber + 1 ];
PWCHAR szAlternates;
}
MPR_DEVICE_1, *PMPR_DEVICE_1;
//
// Used to get/set extended credentials information such as
// eap credentials info.
//
typedef struct _MPR_CREDENTIALSEX_0
{
DWORD dwSize;
LPBYTE lpbCredentialsInfo;
}
MPR_CREDENTIALSEX_0, *PMPR_CREDENTIALSEX_0;
#endif /* WINVER >= 0x0500 */
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;
//
// PPP_IPCP_INFO2 dwOptions values.
//
#define PPP_IPCP_VJ 0x00000001
typedef struct _PPP_IPCP_INFO2
{
OUT DWORD dwError;
OUT WCHAR wszAddress[ IPADDRESSLEN + 1 ];
OUT WCHAR wszRemoteAddress[ IPADDRESSLEN + 1 ];
OUT DWORD dwOptions;
OUT DWORD dwRemoteOptions;
}
PPP_IPCP_INFO2;
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;
#if(WINVER >= 0x0500)
//
// PPP_CCP dwCompressionAlgorithm values.
//
#define RASCCPCA_MPPC 0x00000006
#define RASCCPCA_STAC 0x00000005
//
// PPP_CCP dwOptions values.
//
#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
{
OUT DWORD dwError;
OUT DWORD dwCompressionAlgorithm;
OUT DWORD dwOptions;
OUT DWORD dwRemoteCompressionAlgorithm;
OUT DWORD dwRemoteOptions;
}
PPP_CCP_INFO;
//
// PPP_LCP dwAuthenticatonProtocol values.
//
#define PPP_LCP_PAP 0xC023
#define PPP_LCP_SPAP 0xC123
#define PPP_LCP_CHAP 0xC223
#define PPP_LCP_EAP 0xC227
//
// PPP_LCP dwAuthenticatonData values.
//
#define PPP_LCP_CHAP_MD5 0x05
#define PPP_LCP_CHAP_MS 0x80
#define PPP_LCP_CHAP_MSV2 0x81
//
// PPP_LCP dwOption values
//
#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
{
OUT DWORD dwError;
OUT DWORD dwAuthenticationProtocol;
OUT DWORD dwAuthenticationData;
OUT DWORD dwRemoteAuthenticationProtocol;
OUT DWORD dwRemoteAuthenticationData;
OUT DWORD dwTerminateReason;
OUT DWORD dwRemoteTerminateReason;
OUT DWORD dwOptions;
OUT DWORD dwRemoteOptions;
OUT DWORD dwEapTypeId;
OUT DWORD dwRemoteEapTypeId;
}
PPP_LCP_INFO;
typedef struct _PPP_INFO_2
{
OUT PPP_NBFCP_INFO nbf;
OUT PPP_IPCP_INFO2 ip;
OUT PPP_IPXCP_INFO ipx;
OUT PPP_ATCP_INFO at;
OUT PPP_CCP_INFO ccp;
OUT PPP_LCP_INFO lcp;
}
PPP_INFO_2;
#endif /* WINVER >= 0x0500 */
//
// 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
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;
#if(WINVER >= 0x0500)
typedef struct _RAS_CONNECTION_2
{
OUT HANDLE hConnection;
OUT WCHAR wszUserName[ UNLEN + 1 ];
OUT ROUTER_INTERFACE_TYPE dwInterfaceType;
OUT GUID guid;
OUT PPP_INFO_2 PppInfo2;
}
RAS_CONNECTION_2, *PRAS_CONNECTION_2;
#endif /* WINVER >= 0x0500 */
//
// 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
//
// The following are flags for the bfPrivilege2 member of RAS_USER_1
// structure
//
#define RASPRIV2_DialinPolicy 0x1
#define RASPRIV_CallbackType (RASPRIV_AdminSetCallback \
| RASPRIV_CallerSetCallback \
| RASPRIV_NoCallback)
typedef struct _RAS_USER_0
{
OUT BYTE bfPrivilege;
OUT WCHAR wszPhoneNumber[ MAX_PHONE_NUMBER_LEN + 1];
}
RAS_USER_0, *PRAS_USER_0;
typedef struct _RAS_USER_1
{
OUT BYTE bfPrivilege;
OUT WCHAR wszPhoneNumber[ MAX_PHONE_NUMBER_LEN + 1];
OUT BYTE bfPrivilege2;
}
RAS_USER_1, *PRAS_USER_1;
//
// Used as RPC binding handle to server
//
typedef HANDLE RAS_SERVER_HANDLE;
typedef HANDLE MPR_SERVER_HANDLE;
typedef HANDLE MIB_SERVER_HANDLE;
//
// RAS ADMIN APIs
//
DWORD APIENTRY
MprAdminConnectionEnum(
IN RAS_SERVER_HANDLE hRasServer,
IN DWORD dwLevel,
OUT LPBYTE * lplpbBuffer,
IN DWORD dwPrefMaxLen,
OUT LPDWORD lpdwEntriesRead,
OUT LPDWORD lpdwTotalEntries,
IN LPDWORD lpdwResumeHandle OPTIONAL
);
DWORD APIENTRY
MprAdminPortEnum(
IN RAS_SERVER_HANDLE hRasServer,
IN DWORD dwLevel,
IN HANDLE hConnection,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -