Package com.sun.jna.platform.win32

## Interface IPHlpAPI

- All Superinterfaces:
    `Library`

      public interface IPHlpAPI
      extends Library

  Windows IP Helper API
  See Also:
    IP Helper Reference

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `IPHlpAPI.FIXED_INFO` | The FIXED_INFO structure contains information that is the same across all the interfaces on a computer.
    `static class` | `IPHlpAPI.IP_ADDR_STRING` | The IP_ADDR_STRING structure represents a node in a linked-list of IPv4 addresses.
    `static class` | `IPHlpAPI.IP_ADDRESS_STRING` | The IP_ADDRESS_STRING structure stores an IPv4 address in dotted decimal notation.
    `static class` | `IPHlpAPI.MIB_IF_ROW2` | The MIB_IF_ROW2 structure stores information about a particular interface.
    `static class` | `IPHlpAPI.MIB_IFROW` | The MIB_IFROW structure stores information about a particular interface.
    `static interface` | `IPHlpAPI.MIB_TCP_STATE` | Enumerates different possible TCP states.
    `static class` | `IPHlpAPI.MIB_TCP6ROW_OWNER_PID` | Contains information that describes an IPv6 TCP connection.
    `static class` | `IPHlpAPI.MIB_TCP6TABLE_OWNER_PID` | Contains a table of IPv6 TCP connections on the local computer.
    `static class` | `IPHlpAPI.MIB_TCPROW_OWNER_PID` | Contains information that describes an IPv4 TCP connection.
    `static class` | `IPHlpAPI.MIB_TCPSTATS` | The MIB_TCPSTATS structure contains statistics for the TCP protocol running on the local computer.
    `static class` | `IPHlpAPI.MIB_TCPTABLE_OWNER_PID` | Contains a table of IPv4 TCP connections on the local computer.
    `static class` | `IPHlpAPI.MIB_UDP6ROW_OWNER_PID` | Contains information that describes an IPv6 UDP connection.
    `static class` | `IPHlpAPI.MIB_UDP6TABLE_OWNER_PID` | Contains a table of IPv6 UDP connections on the local computer.
    `static class` | `IPHlpAPI.MIB_UDPROW_OWNER_PID` | Contains information that describes an IPv6 UDP connection.
    `static class` | `IPHlpAPI.MIB_UDPSTATS` | The MIB_UDPSTATS structure contains statistics for the User Datagram Protocol (UDP) running on the local computer.
    `static class` | `IPHlpAPI.MIB_UDPTABLE_OWNER_PID` | Contains a table of IPv6 UDP connections on the local computer.
    `static interface` | `IPHlpAPI.TCP_TABLE_CLASS` | Defines the set of values used to indicate the type of table returned by calls to `GetExtendedTcpTable(com.sun.jna.Pointer, com.sun.jna.ptr.IntByReference, boolean, int, int, int)`
    `static interface` | `IPHlpAPI.UDP_TABLE_CLASS` | Defines the set of values used to indicate the type of table returned by calls to `GetExtendedUdpTable(com.sun.jna.Pointer, com.sun.jna.ptr.IntByReference, boolean, int, int, int)`.

    - ### Nested classes/interfaces inherited from interface com.sun.jna.Library

      `Library.Handler`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `AF_BTH` |
    `static int` | `AF_INET` |
    `static int` | `AF_INET6` |
    `static int` | `AF_IPX` |
    `static int` | `AF_IRDA` |
    `static int` | `AF_NETBIOS` |
    `static int` | `AF_UNSPEC` |
    `static int` | `IF_MAX_PHYS_ADDRESS_LENGTH` |
    `static int` | `IF_MAX_STRING_SIZE` |
    `static IPHlpAPI` | `INSTANCE` |
    `static int` | `MAX_DOMAIN_NAME_LEN` |
    `static int` | `MAX_HOSTNAME_LEN` |
    `static int` | `MAX_INTERFACE_NAME_LEN` |
    `static int` | `MAX_SCOPE_ID_LEN` |
    `static int` | `MAXLEN_IFDESCR` |
    `static int` | `MAXLEN_PHYSADDR` |

    - ### Fields inherited from interface com.sun.jna.Library

      `OPTION_ALLOW_OBJECTS, OPTION_CALLING_CONVENTION, OPTION_CLASSLOADER, OPTION_FUNCTION_MAPPER, OPTION_INVOCATION_MAPPER, OPTION_OPEN_FLAGS, OPTION_STRING_ENCODING, OPTION_STRUCTURE_ALIGNMENT, OPTION_TYPE_MAPPER`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `GetExtendedTcpTable​(Pointer pTcpTable, IntByReference pdwSize, boolean bOrder, int ulAf, int TableClass, int Reserved)` | Retrieves a table that contains a list of TCP endpoints available to the application.
    `int` | `GetExtendedUdpTable​(Pointer pUdpTable, IntByReference pdwSize, boolean bOrder, int ulAf, int TableClass, int Reserved)` | Retrieves a table that contains a list of UDP endpoints available to the application.
    `int` | `GetIfEntry​(IPHlpAPI.MIB_IFROW pIfRow)` | The GetIfEntry function retrieves information for the specified interface on the local computer.
    `int` | `GetIfEntry2​(IPHlpAPI.MIB_IF_ROW2 pIfRow2)` | The GetIfEntry2 function retrieves information for the specified interface on the local computer.
    `int` | `GetNetworkParams​(Pointer pFixedInfo, IntByReference pOutBufLen)` | The GetNetworkParams function retrieves network parameters for the local computer.
    `int` | `GetTcpStatistics​(IPHlpAPI.MIB_TCPSTATS Statistics)` | The GetTcpStatistics function retrieves the TCP statistics for the local computer.
    `int` | `GetTcpStatisticsEx​(IPHlpAPI.MIB_TCPSTATS Statistics, int Family)` | The GetTcpStatisticsEx function retrieves the Transmission Control Protocol (TCP) statistics for the current computer.
    `int` | `GetUdpStatistics​(IPHlpAPI.MIB_UDPSTATS Statistics)` | The GetUdpStatistics function retrieves the User Datagram Protocol (UDP) statistics for the local computer.
    `int` | `GetUdpStatisticsEx​(IPHlpAPI.MIB_UDPSTATS Statistics, int Family)` | The GetUdpStatisticsEx function retrieves the User Datagram Protocol (UDP) statistics for the current computer.

- - ### Field Detail

    - #### INSTANCE

          static final IPHlpAPI INSTANCE

    - #### IF_MAX_STRING_SIZE

          static final int IF_MAX_STRING_SIZE

      See Also:
        Constant Field Values

    - #### IF_MAX_PHYS_ADDRESS_LENGTH

          static final int IF_MAX_PHYS_ADDRESS_LENGTH

      See Also:
        Constant Field Values

    - #### MAX_INTERFACE_NAME_LEN

          static final int MAX_INTERFACE_NAME_LEN

      See Also:
        Constant Field Values

    - #### MAXLEN_IFDESCR

          static final int MAXLEN_IFDESCR

      See Also:
        Constant Field Values

    - #### MAXLEN_PHYSADDR

          static final int MAXLEN_PHYSADDR

      See Also:
        Constant Field Values

    - #### MAX_HOSTNAME_LEN

          static final int MAX_HOSTNAME_LEN

      See Also:
        Constant Field Values

    - #### MAX_DOMAIN_NAME_LEN

          static final int MAX_DOMAIN_NAME_LEN

      See Also:
        Constant Field Values

    - #### MAX_SCOPE_ID_LEN

          static final int MAX_SCOPE_ID_LEN

      See Also:
        Constant Field Values

    - #### AF_UNSPEC

          static final int AF_UNSPEC

      See Also:
        Constant Field Values

    - #### AF_INET

          static final int AF_INET

      See Also:
        Constant Field Values

    - #### AF_IPX

          static final int AF_IPX

      See Also:
        Constant Field Values

    - #### AF_NETBIOS

          static final int AF_NETBIOS

      See Also:
        Constant Field Values

    - #### AF_INET6

          static final int AF_INET6

      See Also:
        Constant Field Values

    - #### AF_IRDA

          static final int AF_IRDA

      See Also:
        Constant Field Values

    - #### AF_BTH

          static final int AF_BTH

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### GetIfEntry

          int GetIfEntry​(IPHlpAPI.MIB_IFROW pIfRow)

      The GetIfEntry function retrieves information for the specified interface on the local computer.

      The `dwIndex` member in the `IPHlpAPI.MIB_IFROW` structure pointed to by the pIfRow parameter must be initialized to a valid network interface index retrieved by a previous call to the GetIfTable, GetIfTable2, or GetIfTable2Ex function. The GetIfEntry function will fail if the dwIndex member of the `IPHlpAPI.MIB_IFROW` pointed to by the pIfRow parameter does not match an existing interface index on the local computer.

      Parameters:
        `pIfRow` - A pointer to a MIB_IFROW structure that, on successful return, receives information for an interface on the local computer. On input, set the dwIndex member of `IPHlpAPI.MIB_IFROW` to the index of the interface for which to retrieve information.
      Returns:
        If the function succeeds, the return value is `WinError.NO_ERROR`.

    - #### GetIfEntry2

          int GetIfEntry2​(IPHlpAPI.MIB_IF_ROW2 pIfRow2)

      The GetIfEntry2 function retrieves information for the specified interface on the local computer.

      On input, at least one of the following members in the `IPHlpAPI.MIB_IF_ROW2` structure passed in the Row parameter must be initialized: InterfaceLuid or InterfaceIndex. The fields are used in the order listed above. So if the InterfaceLuid is specified, then this member is used to determine the interface. If no value was set for the InterfaceLuid member (the value of this member was set to zero), then the InterfaceIndex member is next used to determine the interface. On output, the remaining fields of the `IPHlpAPI.MIB_IF_ROW2` structure pointed to by the Row parameter are filled in.

      Parameters:
        `pIfRow2` - A pointer to a `IPHlpAPI.MIB_IF_ROW2` structure that, on successful return, receives information for an interface on the local computer. On input, the InterfaceLuid or the InterfaceIndex member of the `IPHlpAPI.MIB_IF_ROW2` must be set to the interface for which to retrieve information.
      Returns:
        If the function succeeds, the return value is `WinError.NO_ERROR`.

    - #### GetNetworkParams

          int GetNetworkParams​(Pointer pFixedInfo,
                               IntByReference pOutBufLen)

      The GetNetworkParams function retrieves network parameters for the local computer.
      Parameters:
        `pFixedInfo` - A pointer to a buffer that contains a `IPHlpAPI.FIXED_INFO` structure that receives the network parameters for the local computer, if the function was successful. This buffer must be allocated by the caller prior to calling the GetNetworkParams function.
        `pOutBufLen` - A pointer to a ULONG variable that specifies the size of the `IPHlpAPI.FIXED_INFO` structure. If this size is insufficient to hold the information, GetNetworkParams fills in this variable with the required size, and returns an error code of `WinError.ERROR_BUFFER_OVERFLOW`.
      Returns:
        If the function succeeds, the return value is `WinError.ERROR_SUCCESS`.

    - #### GetTcpStatistics

          int GetTcpStatistics​(IPHlpAPI.MIB_TCPSTATS Statistics)

      The GetTcpStatistics function retrieves the TCP statistics for the local computer.
      Parameters:
        `Statistics` - A `IPHlpAPI.MIB_TCPSTATS` structure that receives the TCP statistics for the local computer.
      Returns:
        If the function succeeds, the return value is `WinError.NO_ERROR`.

    - #### GetTcpStatisticsEx

          int GetTcpStatisticsEx​(IPHlpAPI.MIB_TCPSTATS Statistics,
                                 int Family)

      The GetTcpStatisticsEx function retrieves the Transmission Control Protocol (TCP) statistics for the current computer. The GetTcpStatisticsEx function differs from the `GetTcpStatistics(com.sun.jna.platform.win32.IPHlpAPI.MIB_TCPSTATS)` function in that GetTcpStatisticsEx also supports the Internet Protocol version 6 (IPv6) protocol family.
      Parameters:
        `Statistics` - A `IPHlpAPI.MIB_TCPSTATS` structure that receives the TCP statistics for the local computer.
        `Family` - The protocol family for which to retrieve statistics. This parameter must be `AF_INET` or `AF_INET6`.
      Returns:
        If the function succeeds, the return value is `WinError.NO_ERROR`.

    - #### GetUdpStatistics

          int GetUdpStatistics​(IPHlpAPI.MIB_UDPSTATS Statistics)

      The GetUdpStatistics function retrieves the User Datagram Protocol (UDP) statistics for the local computer.
      Parameters:
        `Statistics` - A `IPHlpAPI.MIB_UDPSTATS` structure that receives the UDP statistics for the local computer.
      Returns:
        If the function succeeds, the return value is `WinError.NO_ERROR`.

    - #### GetUdpStatisticsEx

          int GetUdpStatisticsEx​(IPHlpAPI.MIB_UDPSTATS Statistics,
                                 int Family)

      The GetUdpStatisticsEx function retrieves the User Datagram Protocol (UDP) statistics for the current computer. The GetUdpStatisticsEx function differs from the `GetUdpStatistics(com.sun.jna.platform.win32.IPHlpAPI.MIB_UDPSTATS)` function in that GetUdpStatisticsEx also supports the Internet Protocol version 6 (IPv6) protocol family.
      Parameters:
        `Statistics` - A `IPHlpAPI.MIB_UDPSTATS` structure that receives the UDP statistics for the local computer.
        `Family` - The protocol family for which to retrieve statistics. This parameter must be `AF_INET` or `AF_INET6`.
      Returns:
        If the function succeeds, the return value is `WinError.NO_ERROR`.

    - #### GetExtendedTcpTable

          int GetExtendedTcpTable​(Pointer pTcpTable,
                                  IntByReference pdwSize,
                                  boolean bOrder,
                                  int ulAf,
                                  int TableClass,
                                  int Reserved)

      Retrieves a table that contains a list of TCP endpoints available to the application.
      Parameters:
        `pTcpTable` - A pointer to the table structure that contains the filtered TCP endpoints available to the application.
        `pdwSize` - The estimated size of the structure returned in pTcpTable, in bytes. If this value is set too small, `ERROR_INSUFFICIENT_BUFFER` is returned by this function, and this field will contain the correct size of the structure.
        `bOrder` - A value that specifies whether the TCP connection table should be sorted. If this parameter is set to TRUE, the TCP endpoints in the table are sorted in ascending order, starting with the lowest local IP address. If this parameter is set to FALSE, the TCP endpoints in the table appear in the order in which they were retrieved. The following values are compared (as listed) when ordering the TCP endpoints: Local IP address, Local scope ID (applicable when the ulAf parameter is set to AF_INET6), Local TCP port, Remote IP address, Remote scope ID (applicable when the ulAf parameter is set to AF_INET6), Remote TCP port.
        `ulAf` - The version of IP used by the TCP endpoints.
        `TableClass` - The type of the TCP table structure to retrieve. This parameter can be one of the values from the `IPHlpAPI.TCP_TABLE_CLASS` enumeration.
        `Reserved` - Reserved. This value must be zero.
      Returns:
        If the function succeeds, the return value is `NO_ERROR`. If the function fails, the return value is an error code.

    - #### GetExtendedUdpTable

          int GetExtendedUdpTable​(Pointer pUdpTable,
                                  IntByReference pdwSize,
                                  boolean bOrder,
                                  int ulAf,
                                  int TableClass,
                                  int Reserved)

      Retrieves a table that contains a list of UDP endpoints available to the application.
      Parameters:
        `pUdpTable` - A pointer to the table structure that contains the filtered UDP endpoints available to the application.
        `pdwSize` - The estimated size of the structure returned in pTcpTable, in bytes. If this value is set too small, `ERROR_INSUFFICIENT_BUFFER` is returned by this function, and this field will contain the correct size of the structure.
        `bOrder` - A value that specifies whether the TCP connection table should be sorted. If this parameter is set to TRUE, the TCP endpoints in the table are sorted in ascending order, starting with the lowest local IP address. If this parameter is set to FALSE, the TCP endpoints in the table appear in the order in which they were retrieved. The following values are compared (as listed) when ordering the TCP endpoints: Local IP address, Local scope ID (applicable when the ulAf parameter is set to `AF_INET6`), Local TCP port, Remote IP address, Remote scope ID (applicable when the ulAf parameter is set to `AF_INET6`), Remote TCP port.
        `ulAf` - The version of IP used by the UDP endpoints.
        `TableClass` - The type of the TCP table structure to retrieve. This parameter can be one of the values from the `IPHlpAPI.TCP_TABLE_CLASS` enumeration.
        `Reserved` - Reserved. This value must be zero.
      Returns:
        If the function succeeds, the return value is `NO_ERROR`. If the function fails, the return value is an error code.