Función NotifyIpInterfaceChange
La función NotifyIpInterfaceChange registra el controlador para recibir notificaciones de cambios en todas las interfaces IP, interfaces IPv4 o interfaces IPv6 en un equipo local.
Sintaxis
NETIOAPI_API NotifyIpInterfaceChange(
_In_ ADDRESS_FAMILY Family,
_In_ PIPINTERFACE_CHANGE_CALLBACK Callback,
_In_ PVOID CallerContext,
_In_ BOOLEAN InitialNotification,
_Inout_ HANDLE *NotificationHandle
);
Parámetros
Familia [in]
Familia de direcciones en la que se registrará el controlador para recibir notificaciones de cambio.Los valores posibles para la familia de direcciones se enumeran en el archivo de encabezado Winsock2.h. Tenga en cuenta que los valores de la familia de direcciones AF_ y las constantes de familia de protocolos PF_ son idénticos (por ejemplo, AF_INET y PF_INET), por lo que puede usar cualquiera de las constantes.
En Windows Vista y versiones posteriores de los sistemas operativos Windows, los valores posibles para el parámetro Family se definen en el archivo de encabezado Ws2def.h. Tenga en cuenta que el archivo de encabezado Ws2def.h se incluye automáticamente en Netioapi.h y nunca debe usar Ws2def.h directamente.
Actualmente se admiten los siguientes valores para la familia de direcciones:
AF_INET
Familia de direcciones IPv4. Cuando se especifica este valor, esta función registra el controlador para recibir notificaciones solo para las notificaciones de cambio de IPv4.AF_INET6
Familia de direcciones IPv6. Cuando se especifica este valor, esta función registra el controlador solo para las notificaciones de cambio de IPv6.AF_UNSPEC
La familia de direcciones no está especificada. Cuando se especifica este valor, esta función registra el controlador que se notificará para los cambios de IPv4 e IPv6.
Devolución de llamada [in]
Puntero a la función que se va a llamar cuando se produce un cambio. Se llama a esta función cuando se recibe una notificación de interfaz.CallerContext [in]
Contexto de usuario que se pasa a la función de devolución de llamada que se especifica en el parámetro Callback cuando se recibe una notificación de interfaz.InitialNotification [in]
Valor que indica si la devolución de llamada se debe invocar inmediatamente después de que se complete el registro para la notificación de cambios. Esta notificación inicial no indica que se ha producido un cambio en una interfaz IP. El propósito de este parámetro para proporcionar confirmación de que la devolución de llamada está registrada.NotificationHandle [in, out]
Puntero que se usa para devolver un identificador que se puede usar más adelante para anular el registro de la notificación de cambio. Si se ejecuta correctamente, se devuelve un identificador de notificación en este parámetro. Si se produce un error, se devuelve NULL .
Valor devuelto
NotifyIpInterfaceChange devuelve STATUS_SUCCESS si la función se realiza correctamente.
Si se produce un error en la función, NotifyIpInterfaceChange devuelve uno de los siguientes códigos de error:
Código devuelto | Descripción |
---|---|
ERROR_INVALID_HANDLE | Se produjo un error interno en el que se encontró un identificador no válido. |
STATUS_INVALID_PARAMETER | Se pasó un parámetro no válido a la función. Este error se devuelve si el parámetro Family no se AF_INET, AF_INET6 o AF_UNSPEC. |
STATUS_NOT_ENOUGH_MEMORY | No había memoria suficiente. |
Otros | Use la función FormatMessage para obtener la cadena de mensaje del error devuelto. |
Observaciones
El controlador debe establecer el parámetro Family en AF_INET, AF_INET6 o AF_UNSPEC.
La invocación de la función de devolución de llamada especificada en el parámetro Callback se serializa. La función de devolución de llamada debe definirse como una función de tipo VOID. Los parámetros que se pasan a la función de devolución de llamada incluyen lo siguiente.
Parámetro | Descripción |
---|---|
IN PVOID CallerContext |
Parámetro CallerContext que se pasa a la función NotifyIpInterfaceChange cuando registra el controlador para las notificaciones de cambio. |
IN PMIB_IPINTERFACE_ROW Row OPTIONAL |
Puntero a la entrada MIB_IPINTERFACE_ROW de la interfaz que se cambió. Este parámetro es un puntero NULL cuando el valor de MIB_NOTIFICATION_TYPE que se pasa en el parámetro NotificationType a la función de devolución de llamada se establece en MibInitialNotification. Esta situación solo puede producirse si el parámetro InitialNotification que se pasa a NotifyIpInterfaceChange se estableció en TRUE al registrar el controlador para recibir notificaciones de cambio. |
IN MIB_NOTIFICATION_TYPE NotificationType |
Tipo de notificación. Este miembro puede ser uno de los valores del tipo de enumeración MIB_NOTIFICATION_TYPE . |
Para anular el registro del controlador para las notificaciones de cambio, llame a la función CancelMibChangeNotify2 y pase el parámetro NotificationHandle que NotifyIpInterfaceChange devuelve.
Requisitos
Plataforma de destino |
Universal |
Versión |
Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
Encabezado |
Netioapi.h (incluya Netioapi.h) |
Biblioteca |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |