PPP_PROJECTION_INFO structure (mprapi.h)
The PPP_PROJECTION_INFO structure contains information obtained during Point-to-Point (PPP) negotiation for Secure Socket Tunneling Protocol (SSTP), Point-to-Point Tunneling Protocol (PPTP), and Layer 2 Tunneling Protocol (L2TP).
Syntax
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;
Members
dwIPv4NegotiationError
A value that specifies the result of PPP IPv4 Network control protocol negotiation. A value of zero indicates Ipv4 has been negotiated successfully. A nonzero value indicates failure, and is the fatal error that occurred during the control protocol negotiation.
wszAddress[IPADDRESSLEN + 1]
An array that contains a Unicode string that specifies the IPv4 address of the local client. This string has the form "a.b.c.d". wszAddress is valid only if dwIPv4NegotiationError is zero.
wszRemoteAddress[IPADDRESSLEN + 1]
An array that contains a Unicode string that specifies the IPv4 address of the remote server. This string has the form "a.b.c.d". wszRemoteAddress is valid only if dwIPv4NegotiationError is zero. If the address is not available, this member is an empty string.
dwIPv4Options
A value that specifies IPCP options for the local client.
Value | Meaning |
---|---|
|
Indicates that IP datagrams sent by the local client are compressed using Van Jacobson compression. |
dwIPv4RemoteOptions
A value that specifies IPCP options for the remote server.
Value | Meaning |
---|---|
|
Indicates that IP datagrams sent by the remote server (that is, received by the local computer) are compressed using Van Jacobson compression. |
IPv4SubInterfaceIndex
A value that specifies the IPv4 subinterface index corresponding to the connection on the server.
dwIPv6NegotiationError
A value that specifies the result of PPP IPv6 Network control protocol negotiation. A value of zero indicates Ipv6 has been negotiated successfully. A nonzero value indicates failure, and is the fatal error that occurred during the control protocol negotiation.
bInterfaceIdentifier[8]
An array that specifies the 64-bit IPv6 interface identifier of the client. The last 64 bits of a 128-bit IPv6 internet address are considered the "interface identifier," which provides a strong level of uniqueness for the preceding 64-bits. bInterfaceIdentifier is valid only if dwIPv6NegotiationError is zero and must not be zero.
bRemoteInterfaceIdentifier[8]
An array that specifies the 64-bit IPv6 interface identifier of the server. The last 64 bits of a 128-bit IPv6 internet address are considered the "interface identifier," which provides a strong level of uniqueness for the preceding 64-bits. bInterfaceIdentifier is valid only if dwIPv6NegotiationError is zero and must not be zero.
bPrefix[8]
A value that specifies the client interface IPv6 address prefix.
dwPrefixLength
A value that specifies the length, in bits, of bPrefix.
IPv6SubInterfaceIndex
A value that specifies the IPv6 subinterface index corresponding to the connection on the server.
dwLcpError
A value that specifies the result of PPP LCP negotiation. A value of zero indicates LCP has been negotiated successfully. A nonzero value indicates failure, and is the fatal error that occurred during the control protocol negotiation.
dwAuthenticationProtocol
A value that specifies the authentication protocol used to authenticate the local client. This member can be one of the following values.
Value | Meaning |
---|---|
|
Password Authentication Protocol. |
|
Challenge Handshake Authentication Protocol. |
|
Extensible Authentication Protocol. |
dwAuthenticationData
A value that specifies additional information about the authentication protocol specified by dwAuthenticationProtocol. This member can be one of the following values:
Value | Meaning |
---|---|
|
MD5 CHAP |
|
Microsoft CHAP. |
|
Microsoft CHAP version 2. |
dwRemoteAuthenticationProtocol
A value that specifies the authentication protocol used to authenticate the remote server. dwAuthenticationProtocol and dwRemoteAuthenticationProtocol will differ when demand dial uses different authentication protocols on the client and server. This member can be one of the following values:
Value | Meaning |
---|---|
|
Password Authentication Protocol. |
|
Challenge Handshake Authentication Protocol. |
|
Extensible Authentication Protocol. |
dwRemoteAuthenticationData
A value that specifies additional information about the authentication protocol specified by dwRemoteAuthenticationProtocol. dwAuthenticationData and dwRemoteAuthenticationData will differ when demand dial uses different authentication protocols on the client and server. This member can be one of the following values:
Value | Meaning |
---|---|
|
MD5 CHAP. |
|
Microsoft CHAP. |
|
Microsoft CHAP version 2. |
dwLcpTerminateReason
Reserved for future use. Must be zero.
dwLcpRemoteTerminateReason
Reserved for future use. Must be zero.
dwLcpOptions
A value that specifies information about LCP options in use by the local client. This member is a combination of the following flags:
Value | Meaning |
---|---|
|
The connection is using multilink. |
|
The connection is using Protocol Field Compression (RFC 1172). |
|
The connection is using Address and Control Field Compression (RFC 1172). |
|
The connection is using Short Sequence Number Header Format (see RFC 1990). |
|
The connection is using DES 56-bit encryption. |
|
The connection is using Triple DES Encryption. |
|
The connection is using 128-bit AES Encryption. |
|
The connection is using 256-bit AES Encryption. |
dwLcpRemoteOptions
A value that specifies information about LCP options in use by the remote server. This member is a combination of the following flags:
Value | Meaning |
---|---|
|
The connection is using multilink. |
|
The connection is using Protocol Field Compression (RFC 1172). |
|
The connection is using Address and Control Field Compression (RFC 1172). |
|
The connection is using Short Sequence Number Header Format (see RFC 1990). |
|
The connection is using DES 56-bit encryption. |
|
The connection is using Triple DES Encryption. |
|
The connection is using 128-bit AES Encryption |
|
The connection is using 256-bit AES Encryption. |
dwEapTypeId
A value that specifies the type identifier of the Extensible Authentication Protocol (EAP) used to authenticate the local client. The value of this member is valid only if dwAuthenticationProtocol is PPP_LCP_EAP.
dwRemoteEapTypeId
A value that specifies the type identifier of the Extensible Authentication Protocol (EAP) used to authenticate the remote server. The value of this member is valid only if dwRemoteAuthenticationProtocol is PPP_LCP_EAP.
dwCcpError
A value that specifies the result of PPP CCP negotiation. A value of zero indicates CCP has been negotiated successfully. A nonzero value indicates failure, and is the fatal error that occurred during the control protocol negotiation.
dwCompressionAlgorithm
A value that specifies the compression algorithm used by the local client. The following table shows the possible values for this member.
Value | Meaning |
---|---|
|
Microsoft Point-to-Point Compression (MPPC) Protocol (RFC 2118). |
|
STAC option 4 (RFC 1974). |
dwCcpOptions
A value that specifies the compression types available on the local client. The following types are supported:
The last three options are used when a connection is made over Layer 2 Tunneling Protocol (L2TP), and the connection uses IPSec encryption.
dwRemoteCompressionAlgorithm
A value that specifies the compression algorithm used by the remote server. The following algorithms are supported:
Value | Meaning |
---|---|
|
Microsoft Point-to-Point Compression (MPPC) Protocol ( RFC 2118). |
|
STAC option 4 ( RFC 1974). |
dwCcpRemoteOptions
A value that specifies the compression types available on the remote server. The following types are supported:
The last three options are used when a connection is made over Layer 2 Tunneling Protocol (L2TP), and the connection uses IPSec encryption.
Requirements
Requirement | Value |
---|---|
Minimum supported client | None supported |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Header | mprapi.h |