Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A função NotifyIpInterfaceChange registra o driver a ser notificado sobre alterações em todas as interfaces IP, IPv4 ou IPv6 em um computador local.
Sintaxe
NETIOAPI_API NotifyIpInterfaceChange(
_In_ ADDRESS_FAMILY Family,
_In_ PIPINTERFACE_CHANGE_CALLBACK Callback,
_In_ PVOID CallerContext,
_In_ BOOLEAN InitialNotification,
_Inout_ HANDLE *NotificationHandle
);
Parâmetros
Família [in]
A família de endereços para registrar o driver para notificações de alteração.Os valores possíveis para a família de endereços estão listados no arquivo de cabeçalho Winsock2.h. Observe que os valores para a família de endereços AF_ e as constantes da família PF_ protocolo são idênticos (por exemplo, AF_INET e PF_INET), portanto, você pode usar qualquer constante.
No Windows Vista e versões posteriores dos sistemas operacionais Windows, os valores possíveis para o parâmetro da família são definidos no arquivo de cabeçalho Ws2def.h. Observe que o arquivo de cabeçalho Ws2def.h é incluído automaticamente no Netioapi.h e você nunca deve usar Ws2def.h diretamente.
Os seguintes valores são atualmente suportados para a família de endereços:
AF_INET
A família de endereços IPv4. Quando esse valor é especificado, essa função registra o driver a ser notificado somente para notificações de alteração IPv4.AF_INET6
A família de endereços IPv6. Quando esse valor é especificado, essa função registra o driver apenas para notificações de alteração IPv6.AF_UNSPEC
A família de endereços não é especificada. Quando esse valor é especificado, essa função registra o driver a ser notificado para alterações IPv4 e IPv6.
Callback [in]
Um ponteiro para a função a ser chamada quando ocorre uma alteração. Esta função é chamada quando uma notificação de interface é recebida.CallerContext [em]
Um contexto de usuário que é passado para a função de retorno de chamada especificada no parâmetro Callback quando uma notificação de interface é recebida.InitialNotification [in]
Um valor que indica se o retorno de chamada deve ser invocado imediatamente após a conclusão do registro para notificação de alteração. Esta notificação inicial não indica que ocorreu uma alteração em uma interface IP. O objetivo deste parâmetro é fornecer a confirmação de que o retorno de chamada está registrado.NotificationHandle [entrada, saída]
Um ponteiro usado para retornar um identificador que pode ser usado posteriormente para cancelar o registro da notificação de alteração. Quando for bem-sucedido, um identificador de notificação é retornado nesse parâmetro. Se ocorrer um erro, NULL será retornado.
Valor de retorno
NotifyIpInterfaceChange retorna STATUS_SUCCESS se a função for bem-sucedida.
Se a função falhar, NotifyIpInterfaceChange retornará um dos seguintes códigos de erro:
| Código de retorno | Descrição |
|---|---|
| ERROR_INVALID_HANDLE | Ocorreu um erro interno onde foi encontrado um identificador inválido. |
| STATUS_INVALID_PARAMETER | Um parâmetro inválido foi passado para a função. Este erro será retornado se o parâmetro Family não tiver sido AF_INET, AF_INET6 ou AF_UNSPEC. |
| STATUS_NOT_ENOUGH_MEMORY | Não havia memória suficiente. |
| Outros | Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado. |
Comentários
O driver deve definir o parâmetro Family como AF_INET, AF_INET6 ou AF_UNSPEC.
A invocação da função de retorno de chamada especificada no parâmetro Callback é serializada. A função de retorno de chamada deve ser definida como uma função do tipo VOID. Os parâmetros que são passados para a função de retorno de chamada incluem o seguinte.
| Parâmetro | Descrição |
|---|---|
EM PVOID CallerContext |
O CallerContext parâmetro que é passado para o NotifyIpInterfaceChange função quando ele está registrando o driver para notificações de alteração. |
EM PMIB_IPINTERFACE_ROW Linha OPCIONAL |
Um ponteiro para a entrada MIB_IPINTERFACE_ROW para a interface que foi alterada. Este parâmetro é um ponteiro de NULL quando o valor MIB_NOTIFICATION_TYPE que é passado no parâmetro NotificationType para a função de retorno de chamada é definido como MibInitialNotification. Essa situação pode ocorrer somente se o parâmetro InitialNotification que é passado para NotifyIpInterfaceChange foi definido como TRUE ao registrar o driver para notificações de alteração. |
IN MIB_NOTIFICATION_TYPE NotificationType |
O tipo de notificação. Esse membro pode ser um dos valores do tipo de enumeração MIB_NOTIFICATION_TYPE. |
Para cancelar o registro do driver para notificações de alteração, chame a funçãoCancelMibChangeNotify2, passando o parâmetro NotificationHandle que NotifyIpInterfaceChange retorna.