(mprapi.h) PPP_PROJECTION_INFO 结构

PPP_PROJECTION_INFO 结构包含针对安全套接字隧道协议 (SSTP) 、点到点隧道协议 (PPTP) 以及第 2 层隧道协议 (L2TP) 进行点到点 (PPP) 协商期间获取的信息。

语法

typedef struct _PPP_PROJECTION_INFO {
  DWORD   dwIPv4NegotiationError;
  WCHAR   wszAddress[IPADDRESSLEN + 1];
  WCHAR   wszRemoteAddress[IPADDRESSLEN + 1];
  DWORD   dwIPv4Options;
  DWORD   dwIPv4RemoteOptions;
  ULONG64 IPv4SubInterfaceIndex;
  DWORD   dwIPv6NegotiationError;
  BYTE    bInterfaceIdentifier[8];
  BYTE    bRemoteInterfaceIdentifier[8];
  BYTE    bPrefix[8];
  DWORD   dwPrefixLength;
  ULONG64 IPv6SubInterfaceIndex;
  DWORD   dwLcpError;
  DWORD   dwAuthenticationProtocol;
  DWORD   dwAuthenticationData;
  DWORD   dwRemoteAuthenticationProtocol;
  DWORD   dwRemoteAuthenticationData;
  DWORD   dwLcpTerminateReason;
  DWORD   dwLcpRemoteTerminateReason;
  DWORD   dwLcpOptions;
  DWORD   dwLcpRemoteOptions;
  DWORD   dwEapTypeId;
  DWORD   dwRemoteEapTypeId;
  DWORD   dwCcpError;
  DWORD   dwCompressionAlgorithm;
  DWORD   dwCcpOptions;
  DWORD   dwRemoteCompressionAlgorithm;
  DWORD   dwCcpRemoteOptions;
} PPP_PROJECTION_INFO, *PPPP_PROJECTION_INFO;

成员

dwIPv4NegotiationError

一个 值,该值指定 PPP IPv4 网络控制协议协商的结果。 值为零表示已成功协商 Ipv4。 非零值表示失败,是控制协议协商期间发生的严重错误。

wszAddress[IPADDRESSLEN + 1]

一个数组,其中包含一个 Unicode 字符串,该字符串指定本地客户端的 IPv4 地址。 此字符串的格式为“a.b.c.d”。 wszAddress 仅在 dwIPv4NegotiationError 为零时才有效。

wszRemoteAddress[IPADDRESSLEN + 1]

包含 Unicode 字符串的数组,该字符串指定远程服务器的 IPv4 地址。 此字符串的格式为“a.b.c.d”。 wszRemoteAddress 仅当 dwIPv4NegotiationError 为零时有效。 如果地址不可用,则此成员为空字符串。

dwIPv4Options

一个 值,该值指定本地客户端的 IPCP 选项。

含义
PPP_IPCP_VJ
指示使用 Van Jacobson 压缩压缩本地客户端发送的 IP 数据报。

dwIPv4RemoteOptions

一个 值,该值指定远程服务器的 IPCP 选项。

含义
PPP_IPCP_VJ
指示远程服务器发送的 IP 数据报 (即本地计算机接收) 使用 Van Jacobson 压缩进行压缩。

IPv4SubInterfaceIndex

一个 值,该值指定与服务器上的连接相对应的 IPv4 子接口索引。

dwIPv6NegotiationError

一个 值,该值指定 PPP IPv6 网络控制协议协商的结果。 值为零表示已成功协商 Ipv6。 非零值表示失败,是控制协议协商期间发生的严重错误。

bInterfaceIdentifier[8]

一个数组,指定客户端的 64 位 IPv6 接口标识符。 128 位 IPv6 Internet 地址的最后 64 位被视为“接口标识符”,这为前面的 64 位提供了强大的唯一性级别。 bInterfaceIdentifier 仅在 dwIPv6NegotiationError 为零且不得为零时有效。

bRemoteInterfaceIdentifier[8]

一个数组,指定服务器的 64 位 IPv6 接口标识符。 128 位 IPv6 Internet 地址的最后 64 位被视为“接口标识符”,这为前面的 64 位提供了强大的唯一性级别。 bInterfaceIdentifier 仅在 dwIPv6NegotiationError 为零且不得为零时有效。

bPrefix[8]

一个 指定客户端接口 IPv6 地址前缀的值。

dwPrefixLength

一个 值,该值指定 bPrefix 的长度(以位为单位)。

IPv6SubInterfaceIndex

一个 值,该值指定与服务器上的连接相对应的 IPv6 子接口索引。

dwLcpError

一个 值,该值指定 PPP LCP 协商的结果。 值为零表示已成功协商 LCP。 非零值表示失败,是控制协议协商期间发生的严重错误。

dwAuthenticationProtocol

一个 值,该值指定用于对本地客户端进行身份验证的身份验证协议。 此成员可以是以下值之一。

含义
PPP_LCP_PAP
密码身份验证协议。
PPP_LCP_CHAP
质询握手身份验证协议。
PPP_LCP_EAP
可扩展身份验证协议。

dwAuthenticationData

一个 值,该值指定由 dwAuthenticationProtocol 指定的身份验证协议的其他信息。 此成员可以是以下值之一:

含义
PPP_LCP_CHAP_MD5
MD5 CHAP
PPP_LCP_CHAP_MS
Microsoft CHAP。
PPP_LCP_CHAP_MSV2
Microsoft CHAP 版本 2。

dwRemoteAuthenticationProtocol

一个 值,该值指定用于对远程服务器进行身份验证的身份验证协议。 当需求拨号在客户端和服务器上使用不同的身份验证协议时,dwAuthenticationProtocoldwRemoteAuthenticationProtocol 将有所不同。 此成员可以是以下值之一:

含义
PPP_LCP_PAP
密码身份验证协议。
PPP_LCP_CHAP
质询握手身份验证协议。
PPP_LCP_EAP
可扩展身份验证协议。

dwRemoteAuthenticationData

一个 值,该值指定由 dwRemoteAuthenticationProtocol 指定的身份验证协议的其他信息。 当请求拨号在客户端和服务器上使用不同的身份验证协议时,dwAuthenticationDatadwRemoteAuthenticationData 将有所不同。 此成员可以是以下值之一:

含义
PPP_LCP_CHAP_MD5
MD5 CHAP。
PPP_LCP_CHAP_MS
Microsoft CHAP。
PPP_LCP_CHAP_MSV2
Microsoft CHAP 版本 2。

dwLcpTerminateReason

保留供将来使用。 必须为零。

dwLcpRemoteTerminateReason

保留供将来使用。 必须为零。

dwLcpOptions

一个 值,该值指定有关本地客户端正在使用的 LCP 选项的信息。 此成员是以下标志的组合:

含义
PPP_LCP_MULTILINK_FRAMING
连接使用多链接。
PPP_LCP_PFC
连接使用协议字段压缩 (RFC 1172) 。
PPP_LCP_ACFC
连接使用地址和控制字段压缩 (RFC 1172) 。
PPP_LCP_SSHF
连接使用短序列号标头格式 (请参阅 RFC 1990) 。
PPP_LCP_DES_56
连接使用 DES 56 位加密。
PPP_LCP_3_DES
连接使用三重 DES 加密。
PPP_LCP_AES_128
连接使用 128 位 AES 加密。
PPP_LCP_AES_256
连接使用 256 位 AES 加密。

dwLcpRemoteOptions

一个 值,该值指定远程服务器正在使用的 LCP 选项的相关信息。 此成员是以下标志的组合:

含义
PPP_LCP_MULTILINK_FRAMING
连接使用多链接。
PPP_LCP_PFC
连接使用协议字段压缩 (RFC 1172) 。
PPP_LCP_ACFC
连接使用地址和控制字段压缩 (RFC 1172) 。
PPP_LCP_SSHF
连接使用短序列号标头格式 (请参阅 RFC 1990) 。
PPP_LCP_DES_56
连接使用 DES 56 位加密。
PPP_LCP_3_DES
连接使用三重 DES 加密。
PPP_LCP_AES_128
连接使用 128 位 AES 加密
PPP_LCP_AES_256
连接使用 256 位 AES 加密。

dwEapTypeId

一个 值,该值指定用于对本地客户端进行身份验证的可扩展身份验证协议 (EAP) 的类型标识符。 仅当PPP_LCP_EAP dwAuthenticationProtocol 时,此成员的值才有效

dwRemoteEapTypeId

一个 值,该值指定用于对远程服务器进行身份验证的可扩展身份验证协议 (EAP) 的类型标识符。 仅当PPP_LCP_EAP dwRemoteAuthenticationProtocol 时,此成员的值才有效

dwCcpError

一个 值,该值指定 PPP CCP 协商的结果。 值为零表示已成功协商 CCP。 非零值表示失败,是控制协议协商期间发生的严重错误。

dwCompressionAlgorithm

一个 值,该值指定本地客户端使用的压缩算法。 下表显示了此成员的可能值。

含义
RASCCPCA_MPPC
Microsoft 点到点压缩 (MPPC) 协议 (RFC 2118) 。
RASCCPCA_STAC
STAC 选项 4 (RFC 1974) 。

dwCcpOptions

一个 值,该值指定本地客户端上可用的压缩类型。 支持以下类型:

含义
PPP_CCP_COMPRESSION
不加密的压缩。
PPP_CCP_HISTORYLESS
Microsoft 点到点加密 (MPPE) 处于无状态模式。 会话密钥在每次数据包后都会更改。 此模式可提高高延迟网络或遇到重大数据包丢失的网络的性能。
PPP_CCP_ENCRYPTION40BITOLD
使用 40 位密钥进行 MPPE 压缩。
PPP_CCP_ENCRYPTION40BIT
使用 40 位密钥进行 MPPE 压缩。
PPP_CCP_ENCRYPTION56BIT
使用 56 位密钥的 MPPE 压缩。
PPP_CCP_ENCRYPTION128BIT
使用 128 位密钥进行 MPPE 压缩。
 

当通过第 2 层隧道协议 (L2TP) 建立连接并且连接使用 IPSec 加密时,将使用最后三个选项。

dwRemoteCompressionAlgorithm

一个 值,该值指定远程服务器使用的压缩算法。 支持以下算法:

含义
RASCCPCA_MPPC
Microsoft 点到点压缩 (MPPC) 协议 ( RFC 2118) 。
RASCCPCA_STAC
STAC 选项 4 ( RFC 1974) 。

dwCcpRemoteOptions

一个 值,该值指定远程服务器上可用的压缩类型。 支持以下类型:

含义
PPP_CCP_COMPRESSION
不加密的压缩。
PPP_CCP_HISTORYLESS
Microsoft 点到点加密 (MPPE) 处于无状态模式。 会话密钥在每次数据包后都会更改。 此模式可提高高延迟网络或遇到重大数据包丢失的网络的性能。
PPP_CCP_ENCRYPTION40BITOLD
使用 40 位密钥进行 MPPE 压缩。
PPP_CCP_ENCRYPTION40BIT
使用 40 位密钥进行 MPPE 压缩。
PPP_CCP_ENCRYPTION56BIT
使用 56 位密钥的 MPPE 压缩。
PPP_CCP_ENCRYPTION128BIT
使用 128 位密钥进行 MPPE 压缩。
ERROR_PPP_NOT_CONVERGING
远程计算机和 RRAS 无法聚合地址协商。
 

当通过第 2 层隧道协议 (L2TP) 建立连接并且连接使用 IPSec 加密时,将使用最后三个选项。

要求

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

另请参阅

路由器管理参考

路由器管理结构