Funzione NotifyRouteChange2

La funzione NotifyRouteChange2 registra il driver per ricevere una notifica per le modifiche alle voci di route IP in un computer locale.

Sintassi

NETIOAPI_API NotifyRouteChange2(
  _In_    ADDRESS_FAMILY             Family,
  _In_    PIPFORWARD_CHANGE_CALLBACK Callback,
  _In_    PVOID                      CallerContext,
  _In_    BOOLEAN                    InitialNotification,
  _Inout_ HANDLE                     *NotificationHandle
);

Parametri

  • Famiglia [in]
    Famiglia di indirizzi in cui registrare il driver per le notifiche di modifica.

    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 identici (ad esempio, AF_INET e PF_INET), in modo da poter usare entrambe le costanti.

    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 è mai consigliabile usare direttamente Ws2def.h.

    I valori seguenti sono attualmente supportati per la famiglia di indirizzi:

    • AF_INET
      Famiglia di indirizzi IPv4. Quando questo valore viene specificato, questa funzione registra il driver solo per le notifiche di modifica della route IPv4.

    • AF_INET6
      Famiglia di indirizzi IPv6. Quando questo valore viene specificato, questa funzione registra il driver solo per le notifiche di modifica della route IPv6.

    • AF_UNSPEC
      La famiglia di indirizzi non è specificata. Quando questo valore viene specificato, questa funzione registra il driver per le notifiche di modifica della route IPv4 e IPv6.

  • Callback [in]
    Puntatore alla funzione da chiamare quando si verifica una modifica. Questa funzione viene chiamata quando viene ricevuta una notifica dell'interfaccia.

  • CallerContext [in]
    Contesto utente passato alla funzione di callback specificata nel parametro Callback quando viene ricevuta una notifica dell'interfaccia.

  • InitialNotification [in]
    Valore che indica se il callback deve essere richiamato immediatamente dopo il completamento della registrazione per la notifica di modifica. Questa notifica iniziale non indica che si è verificata una modifica alla route IP. Scopo di questo parametro per fornire la conferma della registrazione del callback.

  • NotificationHandle [in, out]
    Puntatore a una struttura MIB_IPINTERFACE_ROW da inizializzare. In caso di esito positivo, i membri di questa struttura vengono inizializzati con le informazioni predefinite per un'interfaccia nel computer locale.

Valore restituito

NotifyRouteChange2 restituisce STATUS_SUCCESS se la funzione ha esito positivo.

Se la funzione ha esito negativo, NotifyRouteChange2 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

Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se il parametro Family non è stato 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

Il driver deve impostare il parametro Family su AF_INET, AF_INET6 o AF_UNSPEC.

La chiamata della funzione di callback specificata nel parametro Callback viene serializzata. La funzione di callback deve essere definita come funzione di tipo VOID. I parametri passati alla funzione di callback includono quanto segue.

Parametro Descrizione

IN PVOID CallerContext

Parametro CallerContext passato alla funzione NotifyRouteChange2 durante la registrazione del driver per le notifiche di modifica.

IN PMIB_IPFORWARD_ROW2 Riga FACOLTATIVA

Puntatore alla voce di MIB_IPFORWARD_ROW2 per la voce di route IP modificata. Questo parametro è un puntatore NULL quando il valore MIB_NOTIFICATION_TYPE passato nel parametro NotificationType alla funzione di callback è impostato su MibInitialNotification. Questa situazione può verificarsi solo se il parametro InitialNotification passato a NotifyRouteChange2 è stato impostato su TRUE durante la registrazione del driver per le notifiche di modifica.

IN MIB_NOTIFICATION_TYPE NotificationType

Tipo di notifica. Questo membro può essere uno dei valori del tipo di enumerazione MIB_NOTIFICATION_TYPE .

Per annullare la registrazione del driver per le notifiche di modifica, chiamare la funzione CancelMibChangeNotify2 , passando il parametro NotificationHandle restituito da NotifyRouteChange2 .

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

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_NOTIFICATION_TYPE

SetIpForwardEntry2