Condividi tramite


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

Vedi anche

CancelMibChangeNotify2

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetTeredoPort

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyTeredoPortChange

NotifyUnicastIpAddressChange

SetUnicastIpAddressEntry