Udostępnij przez


GetIpInterfaceEntry, funkcja

Funkcja GetIpInterfaceEntry pobiera informacje o adresie IP określonego interfejsu na komputerze lokalnym.

Składnia

NETIOAPI_API GetIpInterfaceEntry(
  _Inout_ PMIB_IPINTERFACE_ROW Row
);

Parametry

  • row [in, out]
    Wskaźnik do struktury MIB_IPINTERFACE_ROW, która po pomyślnym powrocie odbiera informacje o interfejsie na komputerze lokalnym. W danych wejściowych sterownik musi ustawić element członkowski InterfaceLuid lub InterfaceIndex elementu członkowskiego MIB_IPINTERFACE_ROW interfejsu w celu pobrania informacji.

Wartość zwracana

getIpInterfaceEntry zwraca STATUS_SUCCESS, jeśli funkcja powiedzie się.

Jeśli funkcja nie powiedzie się, GetIpInterfaceEntry zwraca jeden z następujących kodów błędów:

Kod powrotny Opis
STATUS_INVALID_PARAMETER

Do funkcji przekazano nieprawidłowy parametr. Ten błąd jest zwracany, jeśli wskaźnik o wartości null jest przekazywany w parametrze wiersza, nie określono elementu członkowskiego rodziny MIB_IPINTERFACE_ROW struktury Row, do którego wskazuje parametr AF_INET lub AF_INET6, lub InterfaceLuid i InterfaceIndex składowych struktury MIB_IPINTERFACE_ROW.

STATUS_NOT_FOUND

Nie można odnaleźć określonego interfejsu. Ten błąd jest zwracany, jeśli funkcja nie może odnaleźć interfejsu sieciowego określonego przez InterfaceLuid lub InterfaceIndex elementu członkowskiego struktury MIB_IPINTERFACE_ROW, do której wskazuje parametr wiersza.

inne

Użyj funkcji FormatMessage, aby uzyskać ciąg komunikatu dla zwróconego błędu.

Uwagi

W danych wejściowych sterownik musi zainicjować następujące elementy członkowskie struktury MIB_IPINTERFACE_ROW, do których wskazuje parametr wiersza.

  • rodziny
    Ustaw wartość AF_INET lub AF_INET6.

  • InterfaceLuid lub InterfaceIndex
    Te elementy członkowskie są używane w kolejności wymienionej wcześniej. Dlatego jeśli określono InterfaceLuid, ten element członkowski jest używany do określania interfejsu. Jeśli nie ustawiono wartości elementu członkowskiego InterfaceLuid (wartość tego elementu członkowskiego została ustawiona na zero), element członkowski InterfaceIndex jest następnie używany do określania interfejsu.

W danych wyjściowych GetIpInterfaceEntry wypełnia pozostałe elementy członkowskie struktury MIB_IPINTERFACE_ROW, do których wskazuje parametr wiersza.

Sterownik musi użyć funkcji InitializeIpInterfaceEntry, aby zainicjować pola wpisu struktury MIB_IPINTERFACE_ROW z wartościami domyślnymi. Sterownik może następnie zmienić pola we wpisie MIB_IPINTERFACE_ROW, który chce zmodyfikować, a następnie wywołać funkcję SetIpInterfaceEntry.

Nieuprzywilejowany równoczesny dostęp do wielu sieci różnych wymagań dotyczących zabezpieczeń tworzy dziurę zabezpieczeń i umożliwia nieuprzywilejowanym sterownikom przypadkowe przekazywanie danych między dwiema sieciami. Typowy przykład to równoczesny dostęp do wirtualnej sieci prywatnej (VPN) i Internetu. Systemy operacyjne Windows Server 2003 i Windows XP używają słabego modelu hosta, w którym usługa dostępu zdalnego (RAS) uniemożliwia taki równoczesny dostęp przez zwiększenie metryki trasy wszystkich tras domyślnych w innych interfejsach. W związku z tym cały ruch jest kierowany przez interfejs sieci VPN, zakłócając inne połączenia sieciowe.

W systemie Windows Vista i nowszych wersjach systemów operacyjnych Windows domyślnie jest używany silny model hosta. Jeśli źródłowy adres IP jest określony w wyszukiwaniu tras przy użyciu funkcji GetBestRoute2, wyszukiwanie trasy jest ograniczone do interfejsu źródłowego adresu IP. Modyfikacja metryki trasy przez RAS nie ma wpływu, ponieważ lista potencjalnych tras nie ma nawet trasy dla interfejsu sieci VPN, co umożliwia ruch do Internetu. Sterownik może użyć DisableDefaultRoutes elementu członkowskiego MIB_IPINTERFACE_ROW, aby wyłączyć używanie trasy domyślnej w interfejsie. Klienci sieci VPN mogą używać tego elementu członkowskiego jako środka zabezpieczeń, aby ograniczyć tunelowanie podzielone, gdy tunelowanie podzielone nie jest wymagane przez klienta sieci VPN. Klient sieci VPN może wywołać funkcję SetIpInterfaceEntry, aby ustawić element członkowski DisableDefaultRoutes, aby true, gdy jest to wymagane. Klient sieci VPN może wykonywać zapytania dotyczące bieżącego stanu elementu członkowskiego DisableDefaultRoutes przez wywołanie funkcji GetIpInterfaceEntry.

Wymagania

Platforma docelowa

universal

Wersja

Dostępne w systemie Windows Vista i nowszych wersjach systemów operacyjnych Windows.

Nagłówek

Netioapi.h (include Netioapi.h)

Biblioteka

Netio.lib

IRQL

< DISPATCH_LEVEL

Zobacz też

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceTable

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

SetIpInterfaceEntry