IPHlpAPI (JNA API)
Description: declaration: package: com.sun.jna.platform.win32, interface: IPHlpAPI

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 final int`
  `AF_BTH`
  `static final int`
  `AF_INET`
  `static final int`
  `AF_INET6`
  `static final int`
  `AF_IPX`
  `static final int`
  `AF_IRDA`
  `static final int`
  `AF_NETBIOS`
  `static final int`
  `AF_UNSPEC`
  `static final int`
  `IF_MAX_PHYS_ADDRESS_LENGTH`
  `static final int`
  `IF_MAX_STRING_SIZE`
  `static final IPHlpAPI`
  `INSTANCE`
  `static final int`
  `MAX_DOMAIN_NAME_LEN`
  `static final int`
  `MAX_HOSTNAME_LEN`
  `static final int`
  `MAX_INTERFACE_NAME_LEN`
  `static final int`
  `MAX_SCOPE_ID_LEN`
  `static final int`
  `MAXLEN_IFDESCR`
  `static final 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_SYMBOL_PROVIDER, OPTION_TYPE_MAPPER`

- ## Method Summary

  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 Details

  - ### 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 Details

  - ### 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.