Funzione NotifyStableUnicastIpAddressTable
La funzione NotifyStableUnicastIpAddressTable recupera la tabella di indirizzi IP unicast stabile in un computer locale.
Sintassi
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
);
Parametri
Famiglia [in]
Famiglia di indirizzi da recuperare.I valori possibili per la famiglia di indirizzi sono elencati nel file di intestazione Winsock2.h. Si noti che i valori per la famiglia di indirizzi AF_ e le costanti della famiglia di protocolli di PF_ sono identiche (ad esempio, AF_INET e PF_INET), in modo da poter usare una costante.
In Windows Vista e versioni successive dei sistemi operativi Windows, i valori possibili per il parametro Family sono definiti nel file di intestazione Ws2def.h. Si noti che il file di intestazione Ws2def.h viene incluso automaticamente in Netioapi.h e non usare mai Ws2def.h direttamente.
I valori seguenti sono attualmente supportati per la famiglia di indirizzi:
AF_INET
Famiglia di indirizzi IPv4. Quando viene specificato questo valore, la funzione recupera la tabella di indirizzi IP unicast stabile che contiene solo voci IPv4.AF_INET6
Famiglia di indirizzi IPv6. Quando questo valore viene specificato, la funzione recupera la tabella di indirizzi IP unicast stabile che contiene solo voci IPv6.AF_UNSPEC
La famiglia di indirizzi non è specificata. Quando questo valore viene specificato, la funzione recupera la tabella di indirizzi IP unicast stabile che contiene sia le voci IPv4 che IPv6.
Tabella [out]
Puntatore a una struttura MIB_UNICASTIPADDRESS_TABLE . Quando NotifyStableUnicastIpAddressTable ha esito positivo, questo parametro restituisce la tabella di indirizzi IP unicast stabile nel computer locale.Quando NotifyStableUnicastIpAddressTable restituisce ERROR_IO_PENDING, che indica che la richiesta di I/O è in sospeso, la tabella di indirizzi IP unicast stabile viene restituita alla funzione nel parametro CallerCallback .
CallerCallback [in]
Puntatore alla funzione da chiamare con la tabella di indirizzi IP unicast stabile. Questa funzione viene chiamata se NotifyStableUnicastIpAddressTable restituisce ERROR_IO_PENDING, che indica che la richiesta di I/O è in sospeso.CallerContext [in]
Contesto utente passato alla funzione callback specificata nel parametro CallerCallback quando è disponibile la tabella di indirizzi IP unicast stabile.NotificationHandle [in, out]
Puntatore usato per restituire un handle che il driver può usare per annullare la richiesta per recuperare la tabella di indirizzi IP unicast stabile. Questo parametro viene restituito se il valore restituito da NotifyStableUnicastIpAddressTable è ERROR_IO_PENDING, che indica che la richiesta di I/O è in sospeso.
Valore restituito
NotifyStableUnicastIpAddressTable restituisce STATUS_SUCCESS e la tabella IP unicast stabile viene restituita nel parametro Table se la funzione riesce immediatamente.
Se la richiesta di I/O è in sospeso, la funzione restituisce ERROR_IO_PENDING e la funzione a cui punta il parametro CallerCallback viene chiamato quando la richiesta di I/O è stata completata con la tabella di indirizzi IP unicast stabile.
Se la funzione ha esito negativo, NotifyStableUnicastIpAddressTable restituisce uno dei codici di errore seguenti:
Codice restituito | Descrizione |
---|---|
ERROR_INVALID_HANDLE | Si è verificato un errore interno in cui è stato rilevato un handle non valido. |
STATUS_INVALID_PARAMETER | Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se il parametro Table è un puntatore NULL , il parametro NotificationHandle è un puntatore NULL o il parametro Family non è AF_INET, AF_INET6 o AF_UNSPEC. |
STATUS_NOT_ENOUGH_MEMORY | Memoria insufficiente. |
Altri | Utilizzare la funzione FormatMessage per ottenere la stringa di messaggio per l'errore restituito. |
Commenti
Tutti gli indirizzi IP unicast, ad eccezione degli indirizzi dial-on-demand, vengono considerati stabili solo se si trovano nello stato preferito. Per una voce di indirizzo IP unicast normale, questo stato corrisponde a un membro DadState del MIB_UNICASTIPADDRESS_ROW per l'indirizzo IP impostato su IpDadStatePreferred. Ogni indirizzo dial-on-demand definisce la propria metrica di stabilità. Attualmente l'unico indirizzo dial-on-demand che la funzione NotifyStableUnicastIpAddressTable considera è l'indirizzo IP unicast usato dal client Teredo nel computer locale.
Il driver deve impostare il parametro Family su AF_INET, AF_INET6 o AF_UNSPEC.
Quando NotifyStableUnicastIpAddressTable ha esito positivo e restituisce STATUS_SUCCESS, il parametro Table restituisce la tabella degli indirizzi IP unicast stabile nel computer locale.
Quando NotifyStableUnicastIpAddressTable restituisce ERROR_IO_PENDING, che indica che la richiesta di I/O è in sospeso, la tabella di indirizzi IP unicast stabile viene restituita alla funzione nel parametro CallerCallback .
Se l'indirizzo IP unicast usato Teredo è disponibile nel computer locale ma non nello stato stabile (qualificato), NotifyStableUnicastIpAddressTable restituisce ERROR_IO_PENDING e la tabella di indirizzi IP unicast stabile viene restituita chiamando la funzione nel parametro CallerCallback. Se l'indirizzo Teredo non è disponibile o è nello stato stabile e gli altri indirizzi IP unicast si trovano in uno stato stabile, la funzione nel parametro CallerCallback non viene mai chiamata.
La funzione di callback specificata nel parametro CallerCallback deve essere definita come funzione di tipo VOID. I parametri passati alla funzione callback includono quanto segue.
Parametro | Descrizione |
---|---|
IN PVOID CallerContext |
Parametro CallerContext passato alla funzione NotifyStableUnicastIpAddressTable quando registra il driver per le notifiche. |
IN PMIB_UNICASTIPADDRESS_TABLE AddressTable |
Puntatore a una struttura MIB_UNICASTIPADDRESS_TABLE contenente la tabella di indirizzi IP unicast stabile nel computer locale. |
La funzione NotifyStableUnicastIpAddressTable viene usata principalmente dai driver che usano il client Teredo.
Per annullare la notifica dopo il callback, chiamare la funzione CancelMibChangeNotify2 passando il parametro NotificationHandlerestituito da NotifyStableUnicastIpAddressTable .
Requisiti
Piattaforma di destinazione |
Universale |
Versione |
Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows. |
Intestazione |
Netioapi.h (include Netioapi.h) |
Libreria |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |