Sdílet prostřednictvím


NotifyStableUnicastIpAddressTable – funkce

Funkce NotifyStableUnicastIpAddressTable načte stabilní tabulku IP adres jednosměrového vysílání v místním počítači.

Syntax

NETIOAPI_API NotifyStableUnicastIpAddressTable(
  _In_    ADDRESS_FAMILY                           Family,
  _Out_   PMIB_UNICASTIPADDRESS_TABLE              *Table,
  _In_    PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback,
  _In_    PVOID                                    CallerContext,
  _Inout_ HANDLE                                   *NotificationHandle
);

Parametry

  • rodinný [in]
    Rodina adres, která se má načíst.

    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á, funkce načte stabilní tabulku IP adres jednosměrového vysílání, která obsahuje pouze položky IPv4.

    • AF_INET6
      Řada IPv6 adres. Pokud je tato hodnota zadaná, funkce načte stabilní tabulku IP adres jednosměrového vysílání, která obsahuje pouze položky IPv6.

    • AF_UNSPEC
      Řada adres není zadaná. Pokud je tato hodnota zadaná, funkce načte stabilní tabulku IP adres jednosměrového vysílání, která obsahuje položky IPv4 i IPv6.

  • tabulky [out]
    Ukazatel na strukturu MIB_UNICASTIPADDRESS_TABLE Pokud NotifyStableUnicastIpAddressTable úspěšný, vrátí tento parametr stabilní tabulku IP adres jednosměrového vysílání v místním počítači.

    Když NotifyStableUnicastIpAddressTable vrátí ERROR_IO_PENDING, což značí, že požadavek na vstupně-výstupní operace čeká, vrátí se stabilní tabulka IP adres jednosměrového vysílání do funkce v parametru CallerCallback.

  • CallerCallback [in]
    Ukazatel na funkci, která se má volat se stabilní tabulkou IP adres jednosměrového vysílání. Tato funkce se volá, pokud NotifyStableUnicastIpAddressTable vrátí ERROR_IO_PENDING, což značí, že V/V požadavek čeká na vyřízení.

  • CallerContext [in]
    Kontext uživatele, který je předán funkci zpětného volání, která je zadána v CallerCallback parametr, pokud je k dispozici stabilní jednosměrová tabulka IP adres.

  • NotificationHandle [in, out]
    Ukazatel, který se používá k vrácení popisovače, který může ovladač použít ke zrušení požadavku na načtení stabilní tabulky IP adres jednosměrového vysílání. Tento parametr se vrátí, pokud je vrácená hodnota z NotifyStableUnicastIpAddressTable je ERROR_IO_PENDING, což značí, že vstupně-výstupní požadavek čeká na vyřízení.

Návratová hodnota

NotifyStableUnicastIpAddressTable vrátí STATUS_SUCCESS a stabilní tabulka IP jednosměrového vysílání se vrátí v parametru Table, pokud funkce proběhne okamžitě.

Pokud požadavek na vstupně-výstupní operace čeká na vyřízení, vrátí funkce ERROR_IO_PENDING a funkci, na kterou CallerCallback odkazuje parametr, který je volán při dokončení V/V požadavku se stabilní tabulkou IP adres jednosměrového vysílání.

Pokud funkce selže, NotifyStableUnicastIpAddressTable 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 tabulky byl ukazatelem NULL, parametr NotificationHand le byl ukazatel NULL nebo 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

Všechny IP adresy jednosměrového vysílání s výjimkou adres vytáčených na vyžádání jsou považovány za stabilní pouze v případě, že jsou v upřednostňovaném stavu. U normální položky IP adresy jednosměrového vysílání by tento stav odpovídal DadState člen MIB_UNICASTIPADDRESS_ROW IP adresy, která je nastavena na IpDadStatePreferred. Každá adresa na vyžádání definuje vlastní metriku stability. V současné době je jedinou adresou na vyžádání, kterou funkce NotifyStableUnicastIpAddressTable považuje za IP adresu jednosměrového vysílání, kterou klient Teredo používá v místním počítači.

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

Když NotifyStableUnicastIpAddressTable úspěšný a vrátí STATUS_SUCCESS, vrátí parametr Table stabilní tabulku IP adres jednosměrového vysílání v místním počítači.

Když NotifyStableUnicastIpAddressTable vrátí ERROR_IO_PENDING, což značí, že požadavek na vstupně-výstupní operace čeká, vrátí se stabilní tabulka IP adres jednosměrového vysílání do funkce v parametru CallerCallback.

Pokud je IP adresa jednosměrového vysílání, kterou Teredo používá, dostupná v místním počítači, ale ne ve stabilním (kvalifikovaném) stavu, NotifyStableUnicastIpAddressTable vrátí ERROR_IO_PENDING a stabilní tabulka IP adres jednosměrového vysílání se nakonec vrátí voláním funkce v parametru CallerCallback. Pokud adresa Teredo není dostupná nebo je ve stabilním stavu a ostatní IP adresy jednosměrového vysílání jsou ve stabilním stavu, funkce v CallerCallback parametru nikdy není volána.

Funkce zpětného volání zadaná v parametru CallerCallback 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á NotifyStableUnicastIpAddressTable funkce při registraci ovladače pro oznámení.

IN PMIB_UNICASTIPADDRESS_TABLE AddressTable

Ukazatel na strukturu MIB_UNICASTIPADDRESS_TABLE, která obsahuje stabilní tabulku IP adres jednosměrového vysílání v místním počítači.

Funkce NotifyStableUnicastIpAddressTable se používá především ovladači, které používají klienta Teredo.

Chcete-li zrušit oznámení po dokončení zpětného volání, zavolejte funkci CancelMibChangeNotify 2 a předejte NotificationHandle parametr, který NotifyStableUnicastIpAddressTable 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

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetTeredoPort

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyTeredoPortChange

NotifyUnicastIpAddressChange

SetUnicastIpAddressEntry