Sdílet prostřednictvím


NotifyRouteChange2

Funkce NotifyRouteChange2 registruje ovladač, který má být upozorněn na změny položek směrování PROTOKOLU IP v místním počítači.

Syntax

NETIOAPI_API NotifyRouteChange2(
  _In_    ADDRESS_FAMILY             Family,
  _In_    PIPFORWARD_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č pouze pro oznámení o změnách tras IPv4.

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

    • AF_UNSPEC
      Řada adres není zadaná. Pokud je tato hodnota zadaná, tato funkce zaregistruje ovladač pro oznámení o změnách tras 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ě trasy IP. Účelem tohoto parametru je poskytnout potvrzení, že zpětné volání je registrováno.

  • NotificationHandle [in, out]
    Ukazatel na strukturu MIB_IPINTERFACE_ROW, která se má inicializovat. Po úspěšném vrácení jsou členy v této struktuře inicializovány s výchozími informacemi pro rozhraní v místním počítači.

Návratová hodnota

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

Pokud funkce selže, NotifyRouteChange2 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 předaný funkci NotifyRouteChange 2 při registraci ovladače pro oznámení o změnách.

V PMIB_IPFORWARD_ROW2 řádku VOLITELNÉ

Ukazatel na položku MIB_IPFORWARD_ROW2 pro změněnou položku trasy PROTOKOLU IP. Tento parametr je ukazatel NULL, pokud je MIB_NOTIFICATION_TYPE hodnota předaná v parametru NotificationType do funkce 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ý NotifyRouteChange 2 byl při registraci ovladače pro oznámení o změnách nastaven na 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 funkciCancelMibChangeNotify2 a předejte parametr NotificationHandle, který NotifyRouteChange2 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

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_NOTIFICATION_TYPE

SetIpForwardEntry2