2.2.1.2.130 PPP_PROJECTION_INFO_1
The PPP_PROJECTION_INFO_1 structure<117> contains information obtained during the PPP negotiation for the PPP-based tunnels.
-
typedef struct _PPP_PROJECTION_INFO_1{ DWORD dwIPv4NegotiationError; WCHAR wszAddress[16]; WCHAR wszRemoteAddress[16]; DWORD dwIPv4Options; DWORD dwIPv4RemoteOptions; ULONG64 IPv4SubInterfaceIndex; DWORD dwIPv6NegotiationError; UCHAR bInterfaceIdentifier[8]; UCHAR bRemoteInterfaceIdentifier[8]; UCHAR 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_1, *PPPP_PROJECTION_INFO_1;
dwIPv4NegotiationError: Same as dwError in PPP_IPCP_INFO (section 2.2.1.2.65).
wszAddress: Same as wszAddress in PPP_IPCP_INFO.
wszRemoteAddress: Same as wszRemoteAddress in PPP_IPCP_INFO.
dwIPv4Options: Same as dwOptions in PPP_IPCP_INFO.
dwIPv4RemoteOptions: Same as dwIPv4Options.
IPv4SubInterfaceIndex: Specifies the index of the subinterface corresponding to the connection on the server.
dwIPv6NegotiationError: Specifies the result of PPP_IPv6. Network control protocol negotiation. A value of zero (0) indicates that either IPv6 was not negotiated or Ipv6 has been negotiated successfully. A nonzero value indicates failure and is the actual fatal error that occurred during the control protocol.
bInterfaceIdentifier: If dwIPv6NegotiationError is zero (0) and IPv6 was negotiated, this MUST be the 64-bit interface identifier of the IPv6 address of the server interface. If dwIPv6NegotiationError is zero, a value of zero for this indicates that IPv6 was not negotiated. It MUST be zero when dwIPv6NegotiationError is nonzero.
bRemoteInterfaceIdentifier: If dwIPv6NegotiationError is zero (0) and IPv6 was negotiated, this MUST be the 64-bit interface identifier of the IPv6 address of the client interface. If dwIPv6NegotiationError is zero, a value of zero for this indicates that IPv6 was not negotiated. It MUST be zero when dwIPv6NegotiationError is nonzero.
bPrefix: Specifies the prefix of the IPv6 address of the client interface.
dwPrefixLength: The length, in bits, of the address prefix.
IPv6SubInterfaceIndex: Specifies the index of the subInterface corresponding to the connection on the server.
dwLcpError: Specifies the error that occurred if the PPP negotiation was unsuccessful and it MUST be one of the following values.
-
Value
Meaning
ERROR_NO_LOCAL_ENCRYPTION
0x000002E5
The local computer does not support the required data encryption type.
ERROR_NO_REMOTE_ENCRYPTION
0x000002E6
The remote computer does not support the required data encryption type.
ERROR_CHANGING_PASSWORD
0x000002C5
There was an error changing the password on the domain. The password might have been too short or might have matched a previously used password.
ERROR_PPP_NO_PROTOCOLS_CONFIGURED
0x000002D0
The PPP controlled protocols were not configured.
ERROR_AUTHENTICATION_FAILURE
0x000002B3
The connection was denied because the username or password specified is not valid or because the selected authentication protocol is not permitted on the remote server.
ERROR_MORE_DATA
0x000000EA
More data is available.
ERROR_PROTOCOL_NOT_CONFIGURED
0x000002DC
The received control protocol of the PPP is not configured.
ERROR_AUTH_INTERNAL
0x00000285
There was an internal error while processing authentication.
ERROR_NO_DIALIN_PERMISSION
0x00000289
The user does not have permission to dial in.
ERROR_SERVER_POLICY
0x0000032C
The connection was prevented because of a policy configured on the RRAS.
ERROR_PEER_REFUSED_AUTH
0x00000397
The connection could not be established because the authentication protocol used by the RRAS to verify username and password could not be matched with the one proposed by the client.
ERROR_UNKNOWN_FRAMED_PROTOCOL
0x0000031A
The Framed Protocol RADIUS [RFC2865] attribute for this client is not PPP.
ERROR_WRONG_TUNNEL_TYPE
0x0000031B
The Tunnel Type RADIUS [RFC2865] attribute for this user is not correct.
ERROR_UNKNOWN_SERVICE_TYPE
0x0000031C
The Service Type RADIUS [RFC2865] attribute for this user is neither Framed nor callback Framed.
ERROR_RESTRICTED_LOGON_HOURS
0x00000286
The user is not permitted to log on at this time of day.
ERROR_ACCT_DISABLED
0x00000287
The account is disabled.
ERROR_PASSWD_EXPIRED
0x00000288
The password for this account has expired.
ERROR_ILL_FORMED_PASSWORD
0x0000052C
Unable to update the password. The value provided for the new password contains values that are not allowed in passwords.
dwAuthenticationProtocol: The same as dwAuthenticatedProtocol in PPP_LCP_INFO.
dwAuthenticationData: The same as dwAuthenticationData in PPP_LCP_INFO (see section 2.2.1.2.71).
dwRemoteAuthenticationProtocol: Specifies the authentication protocol used to authenticate the remote computer. This will be different from dwAuthenticationProtocol in the case of demand-dial if the authentication protocol used by the two ends are different. See the dwAuthenticationProtocol member for a list of possible values.
dwRemoteAuthenticationData: Specifies additional information about the authentication protocol specified by dwRemoteAuthenticationProtocol. This will be different from dwAuthenticationData in the case of demand-dial if the authentication protocol used by the two ends are different. See the dwAuthenticationData member for a list of possible values.
dwLcpTerminateReason: Specifies the reason the connection was terminated by the local computer. This member always has a value of zero (0).
dwLcpRemoteTerminateReason: Specifies the reason the connection was terminated by the remote computer. This member always has a value of zero (0).
dwLcpOptions: The same as dwOptions in PPP_LCP_INFO (see section 2.2.1.2.71).
dwLcpRemoteOptions: Specifies information about the LCP options in use by the remote computer. See the dwLcpOptions member for a list of possible values.
dwEapTypeId: Specifies the type identifier of the EAP used to authenticate the local computer. The value of this member is valid only if dwAuthenticationProtocol is PPP_LCP_EAP. The valid values are defined in [IANA-EAP].
dwRemoteEapTypeId: MUST be zero (0). This value has no significance.
dwCcpError: Specifies an error if the negotiation is unsuccessful.
dwCompressionAlgorithm: The same as dwCompressionAlgorithm in PPP_LCP_INFO.
dwCcpOptions: The same as dwCcpOptions in PPP_LCP_INFO.
dwRemoteCompressionAlgorithm: Specifies the compression algorithm used by the remote computer. The values are the same as those for dwCompressionAlgorithm.
dwCcpRemoteOptions: Specifies the compression options on the remote computer. The following options are supported.
-
Value
Meaning
PPP_CCP_COMPRESSION
0x00000001
Compression without encryption.
PPP_CCP_HISTORYLESS
0x01000000
MPPE in stateless mode. The session key is changed after every packet. This mode improves performance on high-latency networks, or networks that experience significant packet loss.
PPP_CCP_ENCRYPTION40BITOLD
0x00000010
PPE using 40-bit keys.
PPP_CCP_ENCRYPTION40BIT
0x00000020
MPPE using 40-bit keys.
PPP_CCP_ENCRYPTION56BIT
0x00000080
MPPE using 56-bit keys.
PPP_CCP_ENCRYPTION128BIT
0x00000040
MPPE using 128-bit keys.
ERROR_PPP_NOT_CONVERGING
0x000002DC
The remote computer and RRAS could not converge on address negotiation.