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

Article translations Article translations
Article ID: 928906 - View products that this article applies to.
Expand all | Collapse all

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.
Collapse this tableExpand this table
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.

Properties

Article ID: 928906 - Last Review: March 15, 2007 - Revision: 1.4
APPLIES TO
  • 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
Keywords: 
kbbug kbndis kbnetworkconnectivity kbnetwork kbexpertiseadvanced kbtshoot KB928906

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com