The "IF_TYPE_PPP" interface type is incorrectly returned by the remote access service when the remote access service establishes a VPN tunnel interface in Windows Vista

This article has been archived. It is offered "as is" and will no longer be updated.
Symptoms
When you create an application to establish a virtual private network (VPN) tunnel in Windows Vista, the value that is returned by an API function is not what you expect. The remote access service incorrectly registers the VPN tunnel as an "IF_TYPE_PPP" Network Driver Interface Specification (NDIS) network interface type.
Cause
This problem occurs because the remote access service incorrectly registers a Point-to-Point Protocol (PPP) network interface and a VPN tunnel interface with the value of the "IF_TYPE_PPP" Network Driver Interface Specification (NDIS) network interface type.
Workaround
To differentiate between a PPP interface and a tunnel interface, use a RASENTRY data structure. To use a RASENTRY data structure to obtain the remote access interface type, follow these steps:
  1. Use the RasEnumConnections function to list all active remote access connections.

    Note The RasEnumConnections function returns a RASCONN structure for each remote access connection. The RASCONN structure contains the szEntryName member. The value of the szEntryName member specifies the phone book entry that is used to establish the remote access connection.
  2. Use the RasGetEntryProperties function to retrieve the properties of the phone book entry that the szEntryName member specifies.

    Note The connection properties are stored in the RASENTRY data structure.
  3. If the value of the szDeviceType member equals RASDT_Vpn, the remote access connection is a VPN tunnel connection. For all other values, the remote access connection is a dial-up/Point-to-Point Protocol over Ethernet (PPPoE) connection. These other values include the following:
    • RASDT_Modem
    • RASDT_Direct


    Note The RASENTRY structure contains the szDeviceType member. The value of the szDeviceType member specifies the remote access device type.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
More information
The ifType value is used to store the NDIS network interface type. Examples of network interface types include the following:
  • Ethernet
  • Token Ring
  • PPP
  • VPN tunnel mode
The ifType value is a member of the data structures of the network stack. Also, the ifType value is a member of many APIs.

The Internet Assigned Numbers Authority (IANA) has defined and standardized the values of the different NDIS network interface types. The IANA standard includes the following type definitions.
TypeValue
PPP network interfaceIF_TYPE_PPP (23)
VPN tunnel type encapsulation network interfaceIF_TYPE_TUNNEL (131)
By default, when the remote access service creates a PPP network interface or a VPN tunnel interface in Windows Vista, both interface types are registered in the network stack. This occurs by using the IF_TYPE_PPP value. Functions that use the ifType value return the same ifType value for both a PPP interface and a tunnel interface.

Examples of functions that use the ifType value include the following:
  • GetAdaptersAddresses
  • GetAdaptersInfo
You cannot determine whether an interface is a PPP type or a tunnel type by using only the ifType value. This problem occurs whenever a remote access connection is created.
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.
Properties

Article ID: 928906 - Last Review: 01/16/2015 16:59:28 - Revision: 1.0

  • Windows Vista Enterprise 64-bit Edition
  • Windows Vista Home Basic 64-bit Edition
  • Windows Vista Home Premium 64-bit Edition
  • Windows Vista Ultimate 64-bit Edition
  • Windows Vista Business
  • Windows Vista Business 64-bit Edition
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows Vista Starter
  • Windows Vista Ultimate
  • kbnosurvey kbarchive kbbug kbndis kbnetworkconnectivity kbnetwork kbexpertiseadvanced kbtshoot KB928906
Feedback