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 |