MPR_INTERFACE_3 结构 (mprapi.h)
MPR_INTERFACE_3 结构包含路由器请求拨号接口的数据。
语法
typedef struct _MPR_INTERFACE_3 {
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;
ULONG AddressCount;
IN6_ADDR ipv6addrDns;
IN6_ADDR ipv6addrDnsAlt;
IN6_ADDR *ipv6addr;
} MPR_INTERFACE_3, *PMPR_INTERFACE_3;
成员
wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1]
指向包含接口名称的 Unicode 字符串的指针。
hInterface
接口的句柄。
fEnabled
一个 值,该值指定是否启用接口。 如果启用了接口,则此值为 TRUE ;如果以管理性禁用接口,则此值为 FALSE 。
dwIfType
一个标识 接口类型的值。
dwConnectionState
一个值,该值描述接口的当前状态,例如,已连接、断开连接或无法访问。 有关详细信息和可能状态的列表,请参阅 ROUTER_CONNECTION_STATE。
fUnReachabilityReasons
一个 值,该值描述接口无法访问的原因。 有关详细信息和可能值的列表,请参阅 不可访问的原因。
dwLastError
一个 值,该值在接口连接失败时包含非零值。
dwfOptions
一个 值,该值指定用于设置连接选项的位标志。 可以设置下表中列出的标志之一。
标志 | 含义 |
---|---|
|
如果设置了此标志,RRAS 将尝试使用 ipaddr 指定的 IP 地址作为拨号连接的 IP 地址。 如果未设置此标志,则忽略 ipaddr 成员的值。
设置 MPRIO_SpecificIpAddr 标志对应于在“TCP/IP 设置”对话框中选择 “指定 IP 地址 ”设置。 清除MPRIO_SpecificIpAddr标志对应于在“TCP/IP 设置”对话框中选择“服务器分配的 IP 地址”设置。 目前,在电话簿条目属性中设置或从服务器检索的 IP 地址会替代网络控制面板中设置的 IP 地址。 |
|
如果设置了此标志,RRAS 将使用 ipaddrDns、 ipaddrDnsAlt、 ipaddrWins 和 ipaddrWinsAlt 成员来指定拨号连接的名称服务器地址。 如果未设置此标志,RRAS 将忽略这些成员。
设置MPRIO_SpecificNameServers标志对应于在“TCP/IP 设置”对话框中选择“ 指定名称服务器地址 ”设置。 清除MPRIO_SpecificNameServers标志对应于在“TCP/IP 设置”对话框中选择“服务器分配的名称服务器地址”设置。 |
|
如果设置了此标志,RRAS 将协商对 PPP 连接使用 IP 标头压缩。 IP 标头压缩可以显著提高性能。
如果未设置此标志,则不协商 IP 标头压缩。 此标志对应于“TCP/IP 设置”对话框中的“使用 IP 标头压缩检查”框。 仅当连接到未正确协商 IP 标头压缩的服务器时,才应清除标志。 |
|
如果设置了此标志,则当连接处于活动状态时,IP 数据包的默认路由是通过拨号适配器。 如果清除此标志,则不会修改默认路由。
此标志对应于“TCP/IP 设置”对话框中的“在远程网络上使用默认网关检查”框。 |
|
如果设置了此标志,RRAS 将禁用 RFC 1570 中定义的 PPP LCP 扩展。 若要连接到某些较旧的 PPP 实现,可能需要禁用 PPP LCP 扩展,但这会干扰服务器回调等功能。 除非特别需要,否则不要设置此标志。 |
|
如果设置了此标志,则会在链接上协商软件压缩。 设置此标志会导致 PPP 驱动程序尝试与服务器协商压缩控制协议 (CCP) 。 默认情况下应设置此标志,但如果服务器不支持兼容的压缩协议,则清除它可以减少协商周期。 |
|
如果设置了此标志,则只能使用安全密码方案向服务器对客户端进行身份验证。 这会阻止 PPP 驱动程序使用 PAP 纯文本身份验证协议对客户端进行身份验证。 但是,支持 MS-CHAP、MD5-CHAP 和 SPAP 身份验证协议。 为了提高安全性,请设置此标志。 为了提高互操作性,请清除此标志。
此标志对应于“安全”对话框中的“需要加密密码检查”框。 有关详细信息,请参阅 MPRIO_RequireMsEncryptedPw。 |
|
如果设置了此标志,则只能使用 Microsoft 安全密码方案向服务器对客户端进行身份验证。 这可以防止 PPP 驱动程序使用 PAP 纯文本身份验证协议、MD5-CHAP 或 SPAP。 为了提高安全性,请设置此标志。 为了提高互操作性,请清除此标志。 此标志优先于 MPRIO_RequireEncryptedPw。
此标志对应于“安全”对话框中的“需要 Microsoft 加密密码检查框。 有关详细信息,请参阅 MPRIO_RequireDataEncryption。 |
|
如果设置了此标志,则必须成功协商数据加密,否则应断开连接。 除非还设置了 MPRIO_RequireMsEncryptedPw ,否则将忽略此标志。
此标志对应于“安全”对话框中的“需要数据加密检查”框。 |
|
此标志留作将来使用。 |
|
如果设置了此标志,RRAS 在拨打此项时会使用当前登录用户的用户名、密码和域。 除非还设置了 MPRIO_RequireMsEncryptedPw ,否则将忽略此标志。
RasDial 函数忽略此设置,其中为 RASDIALPARAMS 结构的 szUserName 和 szPassword 成员指定空字符串会提供相同的结果。 此标志对应于“安全性”对话框中的“使用当前用户名和密码检查框。 |
|
当 szAlternates 成员定义备用电话号码时,此标志将生效。 如果设置了此标志,成功连接的备用电话号码将成为主要电话号码,并且当前主要电话号码将移动到备用列表。
此标志对应于“备用数字”对话框中的“检查”框。 |
|
如果设置了此标志,RRAS 会在与此项建立连接之前检查现有的远程文件系统和远程打印机绑定。 通常,在公用网络的电话簿条目上设置此标志,以提醒用户在连接到公用网络之前断开与专用网络的连接。 |
|
如果设置了此标志,则身份验证必须支持可扩展身份验证协议 (EAP) 。 |
|
如果设置了此标志,则身份验证必须支持密码身份验证协议。 |
|
如果设置了此标志,则必须支持 Shiva 的密码身份验证协议 (SPAP) 进行身份验证。 |
|
如果设置了此标志,则共享电话号码。 |
|
如果设置了此标志,则身份验证必须支持质询握手身份验证协议。 |
|
如果设置了此标志,则必须支持 Microsoft 质询握手身份验证协议进行身份验证。 |
|
如果设置了此标志,则必须支持 Microsoft 质询握手身份验证协议的版本 2 进行身份验证。 |
szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]
一个 值,该值指定包含电话号码或 IPv6 地址的以 null 结尾的字符串。
szAlternates
指向连续以 null 结尾的 Unicode 字符串列表的指针。 最后一个字符串以两个连续的空字符结尾。 如果主要号码无法连接,字符串是路由器按列出的顺序拨打的备用电话号码。 有关详细信息,请参阅 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
一个 值,该值指定要协商的网络协议。 此成员可以是以下标志的组合。
标志 | 含义 |
---|---|
|
协商 IPX 协议。 |
|
协商 TCP/IP 协议。 |
64 位 Windows: 不支持MPRNP_Ipx标志
szDeviceType[MPR_MaxDeviceType + 1]
一个 值,该值指定以 null 结尾的字符串,该字符串指示 szDeviceName 引用的 RRAS 设备类型。 此成员可以是以下字符串常量之一。
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 是否应拨打此条目的所有多链接子项。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
首先拨号所有子项。 |
|
根据带宽需求调整子项数。 RRAS 使用 dwDialExtraPercent、 dwDialExtraSampleSeconds、 dwDialHangUpExtraPercent 和 dwHangUpExtraSampleSeconds 成员来确定何时拨打或断开子项。 |
dwDialExtraPercent
一个 值,该值指定当前连接的子项可用的总带宽百分比。 当使用的总带宽超过 dwDialExtraSampleSeconds 秒的可用带宽的 dwDialExtraPercent 百分比时, RRAS 会拨入其他子项。
除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。
dwDialExtraSampleSeconds
一个 值,该值指定在 RRAS 拨号其他子项之前,当前带宽使用量必须超过 dwDialExtraPercent 指定的阈值的时间(以秒为单位)。
除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。
dwHangUpExtraPercent
一个 值,该值指定当前连接的子项可用的总带宽百分比。 当使用的总带宽小于可用带宽的 dwHangUpExtraPercent%(至少 dwHangUpExtraSampleSeconds 秒)时,RRAS 终止) (挂起现有子项连接。
除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。
dwHangUpExtraSampleSeconds
一个 值,该值指定在 RRAS 终止现有子项连接之前,当前带宽使用量必须小于 dwHangUpExtraPercent 指定的阈值的时间(以秒为单位)。
除非 dwDialMode 成员指定 MPRDM_DialAsNeeded 标志,否则将忽略此成员。
dwIdleDisconnectSeconds
一个 值,该值指定终止非活动连接的时间(以秒为单位)。 除非禁用空闲超时,否则如果连接在指定间隔内处于空闲状态,则整个连接将终止。 此成员可以指定超时值或以下值之一。
值 | 含义 |
---|---|
|
此连接没有空闲超时。 |
|
使用用户首选项值作为默认值。 |
dwType
一个 值,该值指定电话簿条目的类型。 此成员可以是以下类型之一。
类型 | 含义 |
---|---|
|
电话线,例如调制解调器、ISDN 或 X.25。 |
|
虚拟专用网络。 |
|
直接串行或并行连接。 |
dwEncryptionType
一个 值,该值指定用于 Microsoft 点到点加密 (MPPE) 与连接的加密类型。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
请勿使用加密。 |
|
使用加密。 |
|
使用最大强度加密。 |
|
如果可能,请使用加密。 |
dwEncryptionType 的值不会影响密码的加密方式。 密码是否加密以及密码的加密方式取决于身份验证协议,例如 PAP、MS-CHAP 或 EAP。
dwCustomAuthKey
一个 值,该值指定要提供给 EAP) 供应商 (可扩展身份验证协议的身份验证密钥。
dwCustomAuthDataSize
一个 值,该值指定 lpbCustomAuthData 成员指向的数据的大小。
lpbCustomAuthData
指向要与 EAP 一起使用的身份验证数据的指针。
guidId
全局唯一标识符 (表示此电话簿条目的 GUID) 。 此成员是只读的。
dwVpnStrategy
拨号 VPN 连接时要使用的 VPN 策略。 此成员可以具有以下值之一。
AddressCount
未使用。
ipv6addrDns
一个 值,该值指定此连接处于活动状态时要使用的 DNS 服务器的 IP 地址。
ipv6addrDnsAlt
一个 值,该值指定此连接处于活动状态时要使用的辅助或备份 DNS 服务器的 IP 地址。
ipv6addr
未使用。
注解
MPR_INTERFACE_3 结构具有许多类似于 RASENTRY 结构的成员的成员。
RASENTRY 结构的以下成员在MPR_INTERFACE_3中没有对应成员:
- dwCountryID
- dwCountryCode
- szAreaCode
- dwFramingProtocol
要求
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | mprapi.h |