Sdílet prostřednictvím


GetIpInterfaceEntry – funkce

Funkce GetIpInterfaceEntry načte informace IP pro zadané rozhraní v místním počítači.

Syntax

NETIOAPI_API GetIpInterfaceEntry(
  _Inout_ PMIB_IPINTERFACE_ROW Row
);

Parametry

  • řádek [in, out]
    Ukazatel na MIB_IPINTERFACE_ROW strukturu, která při úspěšném vrácení obdrží informace o rozhraní v místním počítači. Na vstupu musí ovladač nastavit InterfaceLuid člen nebo InterfaceIndex člen MIB_IPINTERFACE_ROW rozhraní pro načtení informací.

Návratová hodnota

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

Pokud funkce selže, GetIpInterfaceEntry 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 řádku předán ukazatel null. family člen struktury MIB_IPINTERFACE_ROW, na kterou řádek odkazuje parametr, nebyl zadán jako AF_INET nebo AF_INET6, nebo InterfaceLuid a InterfaceIndex členy struktury MIB_IPINTERFACE_ROW nebyly zadány.

STATUS_NOT_FOUND

Zadané rozhraní nebylo nalezeno. Tato chyba se vrátí, pokud funkce nemůže najít síťové rozhraní určené InterfaceLuid nebo InterfaceIndex člen struktury MIB_IPINTERFACE_ROW, na kterou odkazuje řádek parametru.

Jiné

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

Poznámky

Na vstupu musí ovladač inicializovat následující členy MIB_IPINTERFACE_ROW struktury, na kterou odkazuje řádek parametru.

  • rodinné
    Nastavte na AF_INET nebo AF_INET6.

  • InterfaceLuid nebo InterfaceIndex
    Tito členové se používají v pořadí, které je uvedeno dříve. Pokud je tedy zadán InterfaceLuid, použije se tento člen k určení rozhraní. Pokud nebyla nastavena žádná hodnota pro InterfaceLuid člen (hodnota tohoto členu byla nastavena na nulu), InterfaceIndex člen se použije k určení rozhraní.

Ve výstupu GetIpInterfaceEntry vyplní zbývající členy struktury MIB_IPINTERFACE_ROW, na které odkazuje parametr řádek.

Ovladač musí použít funkci InitializeIpInterfaceEntry k inicializaci polí položky struktury MIB_IPINTERFACE_ROW s výchozími hodnotami. Ovladač pak může změnit pole v položce MIB_IPINTERFACE_ROW, kterou chce upravit, a potom volat funkci SetIpInterfaceEntry.

Neprivilegovaný souběžný přístup k více sítím různých požadavků na zabezpečení vytvoří díru zabezpečení a umožní neprivilegovaným ovladačům náhodně předávat data mezi těmito dvěma sítěmi. Typickým příkladem je souběžný přístup k virtuální privátní síti (VPN) a internetu. Operační systémy Windows Server 2003 a Windows XP používají slabý hostitelský model, kdy služba vzdáleného přístupu (RAS) brání takovému současnému přístupu zvýšením metriky trasy všech výchozích tras v jiných rozhraních. Proto se veškerý provoz směruje přes rozhraní VPN, čímž dojde k narušení jiného síťového připojení.

Ve Windows Vista a novějších verzích operačních systémů Windows se ve výchozím nastavení používá silný hostitelský model. Pokud je zdrojová IP adresa zadaná ve vyhledávání tras pomocí funkce GetBestRoute2, bude vyhledávání tras omezeno na rozhraní zdrojové IP adresy. Úprava metriky směrování službou RAS nemá žádný vliv, protože seznam potenciálních tras ani nemá trasu pro rozhraní VPN, která umožňuje provoz do internetu. Ovladač může pomocí DisableDefaultRoutes člena MIB_IPINTERFACE_ROW zakázat použití výchozí trasy v rozhraní. Klienti VPN můžou tento člen použít jako bezpečnostní opatření k omezení rozděleného tunelového propojení v případě, že klient VPN nevyžaduje rozdělení tunelů. Klient VPN může volat funkci SetIpInterfaceEntry, která nastaví DisableDefaultRoutes člena tak, aby v případě potřeby TRUE. Klient VPN může dotazovat aktuální stav DisableDefaultRoutes člen voláním funkce GetIpInterfaceEntry.

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é

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceTable

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

SetIpInterfaceEntry