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 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í.