Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í.