Dela via


NotifyStableUnicastIpAddressTable-funktion

Funktionen NotifyStableUnicastIpAddressTable hämtar den stabila unicast-IP-adresstabellen på en lokal dator.

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
);

Parametrar

  • Family [in]
    Adressfamiljen som ska hämtas.

    Möjliga värden för adressfamiljen visas i sidhuvudfilen Winsock2.h. Observera att värdena för AF_-adressfamiljen och PF_ protokollfamiljens konstanter är identiska (till exempel AF_INET och PF_INET), så du kan använda någon av konstanterna.

    I Windows Vista och senare versioner av Windows-operativsystem definieras möjliga värden för parametern Family i rubrikfilen Ws2def.h. Observera att Ws2def.h-huvudfilen automatiskt ingår i Netioapi.h och att du aldrig bör använda Ws2def.h direkt.

    Följande värden stöds för närvarande för adressfamiljen:

    • AF_INET
      IPv4-adressfamiljen. När det här värdet anges hämtar funktionen den stabila unicast-IP-adresstabellen som endast innehåller IPv4-poster.

    • AF_INET6
      IPv6-adressfamiljen. När det här värdet anges hämtar funktionen den stabila unicast-IP-adresstabellen som endast innehåller IPv6-poster.

    • AF_UNSPEC
      Adressfamiljen är ospecificerad. När det här värdet anges hämtar funktionen den stabila unicast-IP-adresstabellen som innehåller både IPv4- och IPv6-poster.

  • Table [out]
    En pekare till en MIB_UNICASTIPADDRESS_TABLE struktur. När NotifyStableUnicastIpAddressTable lyckas returnerar den här parametern den stabila unicast-IP-adresstabellen på den lokala datorn.

    När NotifyStableUnicastIpAddressTable returnerar ERROR_IO_PENDING, vilket anger att I/O-begäran väntar, returneras den stabila unicast-IP-adresstabellen till funktionen i parametern CallerCallback.

  • CallerCallback [in]
    En pekare till funktionen som ska anropas med den stabila unicast-IP-adresstabellen. Den här funktionen anropas om NotifyStableUnicastIpAddressTable returnerar ERROR_IO_PENDING, vilket anger att I/O-begäran väntar.

  • CallerContext [in]
    En användarkontext som skickas till motringningsfunktionen som anges i parametern CallerCallback när den stabila unicast-IP-adresstabellen är tillgänglig.

  • NotificationHandle [in, ut]
    En pekare som används för att returnera ett handtag som drivrutinen kan använda för att avbryta begäran om att hämta den stabila unicast-IP-adresstabellen. Den här parametern returneras om returvärdet från NotifyStableUnicastIpAddressTable är ERROR_IO_PENDING, vilket indikerar att I/O-begäran väntar.

Returvärde

NotifyStableUnicastIpAddressTable returnerar STATUS_SUCCESS och den stabila unicast-IP-tabellen returneras i parametern Table om funktionen lyckas omedelbart.

Om I/O-begäran väntar returnerar funktionen ERROR_IO_PENDING och funktionen som CallerCallback- parametern pekar på anropas när I/O-begäran har slutförts med den stabila unicast-IP-adresstabellen.

Om funktionen misslyckas returnerar NotifyStableUnicastIpAddressTable någon av följande felkoder:

Returnera kod Beskrivning
ERROR_INVALID_HANDLE

Ett internt fel uppstod när ett ogiltigt handtag påträffades.

STATUS_INVALID_PARAMETER

En ogiltig parameter skickades till funktionen. Det här felet returneras om parametern Table var en NULL- pekare, parametern NotificationHandle var en NULL--pekare eller parametern Family varken AF_INET, AF_INET6 eller AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Det fanns inte tillräckligt med minne.

Andra

Använd funktionen FormatMessage för att hämta meddelandesträngen för det returnerade felet.

Anmärkningar

Alla unicast-IP-adresser, förutom adresser på begäran, anses vara stabila endast om de är i önskat tillstånd. För en normal unicast-IP-adresspost motsvarar det här tillståndet en DadState- medlem i MIB_UNICASTIPADDRESS_ROW för IP-adressen som är inställd på IpDadStatePreferred. Varje adress på uppringning på begäran definierar sitt eget stabilitetsmått. För närvarande är den enda adress på begäran som funktionen NotifyStableUnicastIpAddressTable anser vara den unicast-IP-adress som Teredo-klienten använder på den lokala datorn.

Drivrutinen måste ange parametern Family till antingen AF_INET, AF_INET6 eller AF_UNSPEC.

När NotifyStableUnicastIpAddressTable lyckas och returnerar STATUS_SUCCESS returnerar parametern Table den stabila unicast-IP-adresstabellen på den lokala datorn.

När NotifyStableUnicastIpAddressTable returnerar ERROR_IO_PENDING, vilket anger att I/O-begäran väntar, returneras den stabila unicast-IP-adresstabellen till funktionen i parametern CallerCallback.

Om unicast-IP-adressen som Teredo använder är tillgänglig på den lokala datorn men inte i stabilt (kvalificerat) tillstånd returnerar NotifyStableUnicastIpAddressTable ERROR_IO_PENDING och den stabila unicast-IP-adresstabellen returneras så småningom genom att anropa funktionen i parametern CallerCallback. Om Teredo-adressen inte är tillgänglig eller är i stabilt tillstånd och de andra unicast-IP-adresserna är i ett stabilt tillstånd anropas aldrig funktionen i parametern CallerCallback.

Återanropsfunktionen som anges i parametern CallerCallback ska definieras som en funktion av typen VOID. Parametrarna som skickas till återanropsfunktionen innehåller följande.

Parameter Beskrivning

IN PVOID CallerContext

Parametern CallerContext som skickas till funktionen NotifyStableUnicastIpAddressTable när drivrutinen registreras för meddelanden.

IN PMIB_UNICASTIPADDRESS_TABLE AddressTable

En pekare till en MIB_UNICASTIPADDRESS_TABLE struktur som innehåller den stabila unicast-IP-adresstabellen på den lokala datorn.

Funktionen NotifyStableUnicastIpAddressTable används främst av drivrutiner som använder Teredo-klienten.

Om du vill avbryta meddelandet när återanropet har slutförts anropar du funktionen CancelMibChangeNotify2 och skickar parametern NotificationHandle som NotifyStableUnicastIpAddressTable returnerar.

Krav

Målplattform

Universell

Version

Finns i Windows Vista och senare versioner av Windows-operativsystemen.

Rubrik

Netioapi.h (inkludera Netioapi.h)

Bibliotek

Netio.lib

IRQL

< DISPATCH_LEVEL

Se även

CancelMibChangeNotify2

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetTeredoPort

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyTeredoPortChange

NotifyUnicastIpAddressChange

SetUnicastIpAddressEntry