Sdílet prostřednictvím


NotifyIpInterfaceChange – funkce

Funkce NotifyIpInterfaceChange registruje ovladač, aby byl upozorněn na změny všech rozhraní IP, rozhraní IPv4 nebo IPv6 v místním počítači.

Syntax

NETIOAPI_API NotifyIpInterfaceChange(
  _In_    ADDRESS_FAMILY               Family,
  _In_    PIPINTERFACE_CHANGE_CALLBACK Callback,
  _In_    PVOID                        CallerContext,
  _In_    BOOLEAN                      InitialNotification,
  _Inout_ HANDLE                       *NotificationHandle
);

Parametry

  • rodinný [in]
    Rodina adres pro registraci řidiče pro oznámení o změnách.

    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á, tato funkce zaregistruje ovladač, aby byl upozorněn pouze na oznámení o změnách protokolu IPv4.

    • AF_INET6
      Řada IPv6 adres. Pokud je tato hodnota zadaná, tato funkce zaregistruje ovladač pouze pro oznámení o změnách protokolu IPv6.

    • AF_UNSPEC
      Řada adres není zadaná. Pokud je tato hodnota zadaná, tato funkce zaregistruje ovladač, který bude upozorněn na změny IPv4 i IPv6.

  • zpětné volání [in]
    Ukazatel na funkci, která se má volat, když dojde ke změně. Tato funkce se volá při přijetí oznámení rozhraní.

  • CallerContext [in]
    Kontext uživatele, který je předán funkci zpětného volání, která je zadána v Zpětné volání parametr při přijetí oznámení rozhraní.

  • InitialNotification [in]
    Hodnota, která označuje, zda má být zpětné volání vyvoláno okamžitě po dokončení registrace pro oznámení o změně. Toto počáteční oznámení neznamená, že došlo ke změně rozhraní IP. Účelem tohoto parametru je poskytnout potvrzení, že zpětné volání je registrováno.

  • NotificationHandle [in, out]
    Ukazatel použitý k vrácení popisovače, který lze později použít k zrušení registrace oznámení o změně. Při úspěchu se v tomto parametru vrátí popisovač oznámení. Pokud dojde k chybě, vrátí NULL.

Návratová hodnota

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

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

Návratový kód Popis
ERROR_INVALID_HANDLE

Při výskytu neplatného popisovače došlo k vnitřní chybě.

STATUS_INVALID_PARAMETER

Funkci byla předána neplatná hodnota parametru. Tato chyba se vrátí, pokud parametr Family nebyl buď AF_INET, AF_INET6 nebo AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Nedostatek paměti.

Jiné

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

Poznámky

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

Vyvolání funkce zpětného volání, která je zadána v Zpětné volání parametr je serializován. Funkce zpětného volání by měla být definována jako funkce typu VOID. Parametry předávané funkci zpětného volání zahrnují následující.

Parametr Popis

IN PVOID CallerContext

CallerContext parametr, který se předá funkci NotifyIpInterfaceChange při registraci ovladače pro oznámení o změnách.

IN PMIB_IPINTERFACE_ROW řádek VOLITELNÉ

Ukazatel na položku MIB_IPINTERFACE_ROW pro změněné rozhraní. Tento parametr je ukazatel NULL, pokud je hodnota MIB_NOTIFICATION_TYPE předaná v parametru NotificationType funkci zpětného volání nastavena na MibInitialNotification. K této situaci může dojít pouze v případě, že parametr InitialNotification předaný do NotifyIpInterfaceChange byl při registraci ovladače pro oznámení o změnách nastaven na hodnotu TRUE.

IN MIB_NOTIFICATION_TYPE NotificationType

Typ oznámení. Tento člen může být jednou z hodnot z typu MIB_NOTIFICATION_TYPE výčtu.

Chcete-li zrušit registraci ovladače pro oznámení o změnách, zavolejte funkci CancelMibChangeNotify2 předáním parametru NotificationHandle, který NotifyIpInterfaceChange vrátí.

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é

CancelMibChangeNotify2

GetIfEntry2

GetIfStackTable

GetIfTable2

GetInvertedIfStackTable

GetIpInterfaceEntry

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_NOTIFICATION_TYPE

SetIpInterfaceEntry