Sdílet prostřednictvím


GetIpInterfaceTable – funkce

Funkce GetIpInterfaceTable načte položky rozhraní IP v místním počítači.

Syntax

NETIOAPI_API GetIpInterfaceTable(
  _In_  ADDRESS_FAMILY         Family,
  _Out_ PMIB_IPINTERFACE_TABLE *Table
);

Parametry

  • rodinný [in]
    Řada IP rozhraní adres, která se mají načíst.

    Možné hodnoty pro řadu adres jsou uvedeny v souboru záhlaví Winsock2.h. Všimněte si, že hodnoty pro řadu AF_ adres a konstanty rodiny protokolu PF_ jsou stejné (například AF_INET a PF_INET), takže můžete použít kteroukoli konstantu.

    V systému Windows Vista a novějších verzích operačních systémů Windows jsou možné hodnoty parametru Family definovány v souboru hlaviček Ws2def.h. Všimněte si, že soubor hlavičky Ws2def.h je automaticky zahrnutý v Netioapi.h a nikdy byste neměli používat Ws2def.h přímo.

    Pro řadu adres se v současné době podporují následující hodnoty:

    • AF_INET
      Řada adres IPv4.

    • AF_INET6
      Řada IPv6 adres.

    • AF_UNSPEC
      Řada adres není zadaná. Pokud je tato hodnota zadaná, vrátí funkce GetIpInterfaceTable tabulku rozhraní IP, která obsahuje položky IPv4 i IPv6.

  • tabulky [out]
    Ukazatel na vyrovnávací paměť, která přijímá tabulku položek rozhraní IP ve struktuře MIB_IPINTERFACE_TABLE.

Návratová hodnota

GetIpInterfaceTable vrátí STATUS_SUCCESS, pokud bude funkce úspěšná.

Pokud funkce selže, GetIpInterfaceTable vrátí jeden z následujících kódů chyb:

Návratový kód Popis
STATUS_INVALID_PARAMETER

Funkci byla předána neplatná hodnota parametru. Tato chyba se vrátí , pokud je v parametru Table předán ukazatel NULL nebo parametr Family nebyl zadán jako AF_INET, AF_INET6 nebo AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

K dokončení operace je k dispozici nedostatek prostředků paměti.

STATUS_NOT_FOUND

Nebyly nalezeny žádné položky rozhraní IP, jak je uvedeno v parametru Family.

STATUS_NOT_SUPPORTED

Funkce není podporována. Tato chyba se vrátí v případě, že v místním počítači není nakonfigurovaný přenos PROTOKOLU IP zadaný v parametru Adresa. Tato chyba se také vrátí ve verzích Windows, kde tato funkce není podporovaná.

Jiné

Pomocí funkce FormatMessage získejte řetězec zprávy pro vrácenou chybu.

Poznámky

Funkce GetIpInterfaceTable vytvoří výčet rozhraní IP v místním počítači a vrátí tyto informace ve struktuře MIB_IPINTERFACE_TABLE.

GetIpInterfaceTable vrátí položky rozhraní IP ve struktuře MIB_IPINTERFACE_TABLE ve vyrovnávací paměti, na kterou odkazuje parametr Table. Struktura MIB_IPINTERFACE_TABLE obsahuje počet položek rozhraní IP a pole MIB_IPINTERFACE_ROW struktur pro každou položku rozhraní IP. Pokud už tyto vrácené struktury nejsou potřeba, ovladač by měl uvolnit paměť voláním funkce FreeMibTable.

Ovladač musí inicializovat parametr Family na AF_INET nebo AF_INET6.

Všimněte si, že vrácená MIB_IPINTERFACE_TABLE struktura, že parametr tabulka odkazuje na zarovnání mezi NumEntries člen a první MIB_IPINTERFACE_ROW položku pole v Tabulka člen struktury MIB_IPINTERFACE_TABLE. Mezi položkami pole MIB_IPINTERFACE_ROW může být také odsazení zarovnání. Jakýkoli přístup k položce pole MIB_IPINTERFACE_ROW by měl předpokládat, že odsazení může existovat.

Požadavky

Cílová platforma

univerzální

Verze

K dispozici v systémech Windows Vista a novějších verzích operačních systémů Windows.

Záhlaví

Netioapi.h (včetně Netioapi.h)

Knihovna

Netio.lib

IRQL

< DISPATCH_LEVEL

Viz také

FreeMibTable

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

MIB_IPNET_ROW2

MIB_IPNET_TABLE2