MPR_INTERFACE_2 结构 (mprapi.h)

MPR_INTERFACE_2结构包含路由器请求拨号接口的数据。

语法

typedef struct _MPR_INTERFACE_2 {
  WCHAR                   wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1];
  HANDLE                  hInterface;
  BOOL                    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;

成员

wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1]

指向包含接口名称的 Unicode 字符串的指针。

hInterface

接口的句柄。

fEnabled

一个 值,该值指定是否启用接口。 如果启用了接口,则此值为 TRUE ;如果以管理性禁用接口,则此值为 FALSE

dwIfType

一个标识 接口类型的值。

dwConnectionState

一个值,该值描述接口的当前状态,例如,已连接、断开连接或无法访问。 有关详细信息和可能状态的列表,请参阅 ROUTER_CONNECTION_STATE

fUnReachabilityReasons

一个 值,该值描述接口无法访问的原因。 有关详细信息和可能值的列表,请参阅 不可访问的原因

dwLastError

一个 值,该值在接口连接失败时包含非零值。

dwfOptions

一个 值,该值指定用于设置连接选项的位标志。 可以设置下表中列出的标志之一。

标志 含义
MPRIO_SpecificIpAddr
如果设置了此标志,RRAS 将尝试使用 ipaddr 指定的 IP 地址作为拨号连接的 IP 地址。 如果未设置此标志,则忽略 ipaddr 成员的值。

设置 MPRIO_SpecificIpAddr 标志对应于在“TCP/IP 设置”对话框中选择 “指定 IP 地址 ”设置。 清除MPRIO_SpecificIpAddr标志对应于在“TCP/IP 设置”对话框中选择“服务器分配的 IP 地址”设置。

目前,在电话簿条目属性中设置或从服务器检索的 IP 地址会替代网络控制面板中设置的 IP 地址。

MPRIO_SpecificNameServers
如果设置了此标志,RRAS 将使用 ipaddrDnsipaddrDnsAltipaddrWinsipaddrWinsAlt 成员来指定拨号连接的名称服务器地址。 如果未设置此标志,RRAS 将忽略这些成员。

设置MPRIO_SpecificNameServers标志对应于在“TCP/IP 设置”对话框中选择“ 指定名称服务器地址 ”设置。 清除MPRIO_SpecificNameServers标志对应于在“TCP/IP 设置”对话框中选择“服务器分配的名称服务器地址”设置。

MPRIO_IpHeaderCompression
如果设置了此标志,RRAS 将协商对 PPP 连接使用 IP 标头压缩。 IP 标头压缩可以显著提高性能。

如果未设置此标志,则不协商 IP 标头压缩。

此标志对应于“TCP/IP 设置”对话框中的“使用 IP 标头压缩检查”框。 仅当连接到未正确协商 IP 标头压缩的服务器时,才应清除标志。

MPRIO_RemoteDefaultGateway
如果设置了此标志,则当连接处于活动状态时,IP 数据包的默认路由是通过拨号适配器。 如果清除此标志,则不会修改默认路由。

此标志对应于“TCP/IP 设置”对话框中的“在远程网络上使用默认网关检查”框。

MPRIO_DisableLcpExtensions
如果设置了此标志,RRAS 将禁用 RFC 1570 中定义的 PPP LCP 扩展。 若要连接到某些较旧的 PPP 实现,可能需要禁用 PPP LCP 扩展,但这会干扰服务器回调等功能。 除非特别需要,否则不要设置此标志。
MPRIO_SwCompression
如果设置了此标志,则会在链接上协商软件压缩。 设置此标志会导致 PPP 驱动程序尝试与服务器协商压缩控制协议 (CCP) 。 默认情况下应设置此标志,但如果服务器不支持兼容的压缩协议,则清除它可以减少协商周期。
MPRIO_RequireEncryptedPw
如果设置了此标志,则只能使用安全密码方案向服务器对客户端进行身份验证。 这会阻止 PPP 驱动程序使用 PAP 纯文本身份验证协议对客户端进行身份验证。 但是,支持 MS-CHAP、MD5-CHAP 和 SPAP 身份验证协议。 为了提高安全性,请设置此标志。 为了提高互操作性,请清除此标志。

此标志对应于“安全”对话框中的“需要加密密码检查”框。 有关详细信息,请参阅 MPRIO_RequireMsEncryptedPw

MPRIO_RequireMsEncryptedPw
如果设置了此标志,则只能使用 Microsoft 安全密码方案向服务器对客户端进行身份验证。 这可以防止 PPP 驱动程序使用 PAP 纯文本身份验证协议、MD5-CHAP 或 SPAP。 为了提高安全性,请设置此标志。 为了提高互操作性,请清除此标志。 此标志优先于 MPRIO_RequireEncryptedPw

此标志对应于“安全”对话框中的“需要 Microsoft 加密密码检查框。 有关详细信息,请参阅 MPRIO_RequireDataEncryption

MPRIO_RequireDataEncryption
如果设置了此标志,则必须成功协商数据加密,否则应断开连接。 除非还设置了 MPRIO_RequireMsEncryptedPw ,否则将忽略此标志。

此标志对应于“安全”对话框中的“需要数据加密检查”框。

MPRIO_NetworkLogon
此标志留作将来使用。
MPRIO_UseLogonCredentials
如果设置了此标志,RRAS 在拨打此项时会使用当前登录用户的用户名、密码和域。 除非还设置了 MPRIO_RequireMsEncryptedPw ,否则将忽略此标志。

RasDial 函数忽略此设置,其中为 RASDIALPARAMS 结构的 szUserNameszPassword 成员指定空字符串会提供相同的结果。

此标志对应于“安全性”对话框中的“使用当前用户名和密码检查框。

MPRIO_PromoteAlternates
szAlternates 成员定义备用电话号码时,此标志将生效。 如果设置了此标志,成功连接的备用电话号码将成为主要电话号码,并且当前主要电话号码将移动到备用列表。

此标志对应于“备用数字”对话框中的“检查”框。

MPRIO_SecureLocalFiles
如果设置了此标志,RRAS 会在与此项建立连接之前检查现有的远程文件系统和远程打印机绑定。 通常,在公用网络的电话簿条目上设置此标志,以提醒用户在连接到公用网络之前断开与专用网络的连接。
MPRIO_RequireEAP
如果设置了此标志,则身份验证必须支持可扩展身份验证协议 (EAP) 。
MPRIO_RequirePAP
如果设置了此标志,则身份验证必须支持密码身份验证协议。
MPRIO_RequireSPAP
如果设置了此标志,则必须支持 Shiva 的密码身份验证协议 (SPAP) 进行身份验证。
MPRIO_SharedPhoneNumbers
如果设置了此标志,则共享电话号码。
MPRIO_RequireCHAP
如果设置了此标志,则身份验证必须支持质询握手身份验证协议。
MPRIO_RequireMsCHAP
如果设置了此标志,则必须支持 Microsoft 质询握手身份验证协议进行身份验证。
MPRIO_RequireMsCHAP2
如果设置了此标志,则必须支持 Microsoft 质询握手身份验证协议的版本 2 进行身份验证。
MPRIO_IpSecPreSharedKey
如果在 MPR_INTERFACE_2 结构中为 dwfOptions 设置了此标志,并在 MprAdminInterfaceSetInfo 中使用,则会将请求拨号接口配置为使用预共享密钥。
MPRIO_RequireMachineCertificates
Windows 8 或更高版本:如果设置了此标志,则计算机证书用于 IKEv2 身份验证。
MPRIO_UsePreSharedKeyForIkev2Initiator
Windows 8 或更高版本:如果设置了此标志,IKEv2 连接的发起方将使用预共享密钥进行身份验证。
MPRIO_UsePreSharedKeyForIkev2Responder
Windows 8 或更高版本:如果设置了此标志,IKEv2 连接的响应方将使用预共享密钥进行身份验证。

szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]

一个 值,该值指定包含电话号码的以 null 结尾的字符串。

szAlternates

指向以 null 结尾的 Unicode 字符串列表的指针。 最后一个字符串以两个连续的 null 字符结尾。 如果主号码无法连接,则字符串是路由器按列出的顺序拨打的备用电话号码。 有关详细信息,请参阅 szLocalPhoneNumber

ipaddr

一个 值,该值指定此连接处于活动状态时要使用的 IP 地址。 除非 dwfOptions 指定 MPRIO_SpecificIpAddr 标志,否则将忽略此成员。

ipaddrDns

一个 值,该值指定此连接处于活动状态时要使用的 DNS 服务器的 IP 地址。 除非 dwfOptions 指定 MPRIO_SpecificNameServers 标志,否则将忽略此成员。

ipaddrDnsAlt

一个 值,该值指定此连接处于活动状态时要使用的辅助或备份 DNS 服务器的 IP 地址。 除非 dwfOptions 指定 MPRIO_SpecificNameServers 标志,否则将忽略此成员。

ipaddrWins

一个 值,该值指定此连接处于活动状态时要使用的 WINS 服务器的 IP 地址。 除非 dwfOptions 指定 MPRIO_SpecificNameServers 标志,否则将忽略此成员。

ipaddrWinsAlt

一个 值,该值指定此连接处于活动状态时要使用的辅助 WINS 服务器的 IP 地址。 除非 dwfOptions 指定 MPRIO_SpecificNameServers 标志,否则将忽略此成员。

dwfNetProtocols

一个 值,该值指定要协商的网络协议。 此成员可以是以下标志的组合。

标志 含义
MPRNP_Ipx
协商 IPX 协议。
MPRNP_Ip
协商 TCP/IP 协议。
 

64 位 Windows: 不支持MPRNP_Ipx标志

szDeviceType[MPR_MaxDeviceType + 1]

一个 值,该值指定以 null 结尾的字符串,该字符串指示 szDeviceName 引用的 RRAS 设备类型。 此成员可以是以下字符串常量之一。

String 含义
MPRDT_Modem
通过 COM 端口访问的调制解调器。
MPRDT_Isdn
安装了相应 NDISWAN 驱动程序的 ISDN 适配器。
MPRDT_X25
安装了相应 NDISWAN 驱动程序的 X.25 适配器。
MPRDT_Vpn
虚拟专用网络 (VPN) 连接。
MPRDT_Pad
数据包汇编程序/反汇编程序。
MPRDT_Generic
通用。
MPRDT_Serial
通过串行端口进行直接串行连接。
MPRDT_FrameRelay
帧中继。
MPRDT_Atm
异步传输模式。
MPRDT_Sonet
Sonet。
MPRDT_SW56
已切换 56K 访问。
MPRDT_Irda
红外数据关联 (IrDA) 兼容设备。
MPRDT_Parallel
通过并行端口直接并行连接。

szDeviceName[MPR_MaxDeviceName + 1]

包含一个以 null 结尾的字符串,其中包含要用于此电话簿条目的 TAPI 设备的名称,例如“Fabrikam Inc 28800 External”。 若要枚举所有支持 RAS 的可用设备,请使用 RasEnumDevices 函数。

szX25PadType[MPR_MaxPadType + 1]

包含标识 X.25 PAD 类型的以 null 结尾的字符串的数据类型。 将此成员设置为空字符串 (“”) ,除非条目应使用 X.25 PAD 拨号。

Windows 2000 和 Windows NT: szX25PadType 字符串映射到 PAD.INF 中的节名称。

szX25Address[MPR_MaxX25Address + 1]

包含一个以 null 结尾的字符串,该字符串标识要连接到的 X.25 地址。 将此成员设置为空字符串 (“”) ,除非条目应使用 X.25 PAD 或本机 X.25 设备进行拨号。

szX25Facilities[MPR_MaxFacilities + 1]

包含一个以 null 结尾的字符串,该字符串指定要在连接时从 X.25 主机请求的设施。 如果 szX25Address 是空字符串 (“”) ,则忽略此成员。

szX25UserData[MPR_MaxUserData + 1]

包含一个以 null 结尾的字符串,该字符串指定在连接时提供给 X.25 主机的其他连接数据。 如果 szX25Address 是空字符串 (“”) ,则忽略此成员。

dwChannels

保留供将来使用。

dwSubEntries

一个 值,该值指定与此条目关联的多链接子项的数目。 调用 RasSetEntryProperties 时,将此成员设置为零。 若要向电话簿条目添加子项,请使用 RasSetSubEntryProperties 函数。

dwDialMode

指示首次连接条目时,RRAS 是否应拨号此条目的所有多链接子项。 此成员可以是以下值之一。

含义
MPRDM_DialAll
首先拨号所有子项。
MPRDM_DialAsNeeded
在需要带宽时调整子项数。 RRAS 使用 dwDialExtraPercentdwDialExtraSampleSecondsdwDialHangUpExtraPercentdwHangUpExtraSampleSeconds 成员来确定何时拨号或断开子entry 的连接。

dwDialExtraPercent

一个 值,该值指定当前连接的子项可用的总带宽百分比。 当使用的总带宽超过 dwDialExtraSampleSeconds 秒的可用带宽的 dwDialExtraPercent 百分比时, RRAS 会拨入其他子项。

除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。

dwDialExtraSampleSeconds

一个 值,该值指定当前带宽使用量必须超过 dwDialExtraPercent 指定的阈值的时间(以秒为单位),然后 RRAS 拨入其他子项。

除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。

dwHangUpExtraPercent

一个 值,该值指定当前连接的子项可用的总带宽百分比。 当使用的总带宽小于可用带宽的 dwHangUpExtraPercent 百分比(至少为 dwHangUpExtraSampleSeconds 秒)时,RRAS 终止) (挂起现有子连接。

除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。

dwHangUpExtraSampleSeconds

一个 值,该值指定在 RRAS 终止现有子连接之前,当前带宽使用量必须小于 dwHangUpExtraPercent 指定的阈值(以秒为单位)。

除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。

dwIdleDisconnectSeconds

一个 值,该值指定非活动连接终止的时间(以秒为单位)。 除非禁用空闲超时,否则如果连接在指定间隔内处于空闲状态,则整个连接将终止。 此成员可以指定超时值或以下值之一。

含义
MPRIDS_Disabled
此连接没有空闲超时。
MPRIDS_UseGlobalValue
使用用户首选项值作为默认值。

dwType

一个 值,该值指定电话簿条目的类型。 此成员可以是以下类型之一。

类型 含义
MPRET_Phone
电话线,例如调制解调器、ISDN 或 X.25。
MPRET_Vpn
虚拟专用网络。
MPRET_Direct
直接串行或并行连接。

dwEncryptionType

一个 值,该值指定用于与连接的 Microsoft 点对点加密 (MPPE) 的加密类型。 此成员可以是以下值之一。

含义
MPR_ET_None
请勿使用加密。
MPR_ET_Require
使用加密。
MPR_ET_RequireMax
使用最大强度加密。
MPR_ET_Optional
如果可能,请使用加密。
 

dwEncryptionType 的值不会影响密码的加密方式。 密码是否加密以及如何加密密码取决于身份验证协议,例如 PAP、MS-CHAP 或 EAP。

dwCustomAuthKey

一个 值,该值指定要提供给 EAP) 供应商 (可扩展身份验证协议的身份验证密钥。

dwCustomAuthDataSize

一个 值,该值指定 lpbCustomAuthData 成员指向的数据的大小。

lpbCustomAuthData

指向要用于 EAP 的身份验证数据的指针。

guidId

全局唯一标识符 (表示此电话簿条目的 GUID) 。 此成员是只读的。

dwVpnStrategy

拨号 VPN 连接时使用的 VPN 策略。 此成员可以具有以下值之一。

含义
MPR_VS_Default
RRAS 首先拨号 PPTP。 如果 PPTP 失败,则尝试 L2TP。 在后续拨号中首先尝试此条目的协议成功。
MPR_VS_PptpOnly
RAS 仅拨号 PPTP。
MPR_VS_PptpFirst
RAS 始终先拨打 PPTP,再拨打 L2TP。
MPR_VS_L2tpOnly
RAS 仅拨号 L2TP。
MPR_VS_L2tpFirst
RAS 首先拨号 L2TP,第二个为 PPTP。

注解

MPR_INTERFACE_2 结构具有许多类似于 RASENTRY 结构的成员的成员。

RASENTRY 结构的以下成员在 MPR_INTERFACE_2 中没有对应项:

  • dwCountryID
  • dwCountryCode
  • szAreaCode
  • dwFramingProtocol
64 位 Windows: 不支持 IPX 协议。

要求

   
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 mprapi.h

另请参阅

MPR_INTERFACE_0

MPR_INTERFACE_1

MprAdminInterfaceGetInfo

MprAdminInterfaceSetInfo