Sdílet prostřednictvím


GetIpNetTable2 – funkce

Funkce GetIpNetTable2 načte tabulku sousedů PROTOKOLU IP na místním počítači.

Syntax

NETIOAPI_API GetIpNetTable2(
  _In_  ADDRESS_FAMILY    Family,
  _Out_ PMIB_IPNET_TABLE2 *Table
);

Parametry

  • rodinný [in]
    Rodina adres, která se má 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. Pokud je tato hodnota zadaná, vrátí tato funkce tabulku sousedníCH IP adres, která obsahuje pouze položky IPv4.

    • AF_INET6
      Řada IPv6 adres. Pokud je tato hodnota zadaná, vrátí tato funkce tabulku sousedníCH IP adres, která obsahuje pouze položky IPv6.

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

  • tabulky [out]
    Ukazatel na MIB_IPNET_TABLE2 strukturu, která obsahuje tabulku položek IP adres souseda v místním počítači.

Návratová hodnota

GetIpNetTable2 vrátí STATUS_SUCCESS, pokud je funkce úspěšná.

Pokud funkce selže, GetIpNetTable2 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 IP adresy souseda, jak je uvedeno v parametru Family.

STATUS_NOT_SUPPORTED

Požadavek není podporován. Tato chyba se vrátí, pokud se na místním počítači nenachází žádný zásobník IPv4 a AF_INET byl zadán v parametru Family nebo pokud se v místním počítači nenachází zásobník IPv6 a AF_INET6 byl zadán v parametru Family. 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 GetIpNetTable2 vytvoří výčet IP adres sousedů v místním počítači a vrátí tyto informace ve struktuře MIB_IPNET_TABLE2.

GetIpNetTable2 vrátí položky IP adresy souseda ve struktuře MIB_IPNET_TABLE2 ve vyrovnávací paměti, na kterou odkazuje parametr Table. Struktura MIB_IPNET_TABLE2 obsahuje počet položek IP adres souseda a pole MIB_IPNET_ROW2 struktur pro každou položku IP adresy souseda. Pokud tyto vrácené struktury již nejsou požadovány, ovladač by měl uvolnit paměť voláním FreeMibTable.

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

Všimněte si, že vrácená struktura MIB_IPNET_TABLE2, že parametr tabulka odkazuje, může obsahovat odsazení pro zarovnání mezi NumEntries člen a první položku pole MIB_IPNET_ROW2 v tabulce tabulka člen struktury MIB_IPNET_TABLE2. Odsazení pro zarovnání může být také mezi položkami pole MIB_IPNET_ROW2. Jakýkoli přístup k položce pole MIB_IPNET_ROW2 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é

CreateIpNetEntry2

FlushIpNetTable2

FreeMibTable

GetIpNetEntry2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2