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 |