Compartilhar via


Função NotifyRouteChange2

A função NotifyRouteChange2 registra o driver a ser notificado quanto a alterações nas entradas de rota IP em um computador local.

Sintaxe

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

Parâmetros

  • Família [in]
    A família de endereços na qual registrar o driver para notificações de alteração.

    Os valores possíveis para a família de endereços sã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 de protocolos PF_ são idênticos (por exemplo, AF_INET e PF_INET), para que você possa usar qualquer constante.

    No Windows Vista e versões posteriores dos sistemas operacionais Windows, os valores possíveis para o parâmetro Family são definidos no arquivo de cabeçalho Ws2def.h. Observe que o arquivo de cabeçalho Ws2def.h é incluído automaticamente em Netioapi.h e você nunca deve usar o Ws2def.h diretamente.

    No momento, há suporte para os seguintes valores 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 somente para notificações de alteração de rota IPv4.

    • AF_INET6
      A família de endereços IPv6. Quando esse valor é especificado, essa função registra o driver somente para notificações de alteração de rota IPv6.

    • AF_UNSPEC
      A família de endereços não é especificada. Quando esse valor é especificado, essa função registra o driver para notificações de alteração de rota IPv4 e IPv6.

  • Retorno de chamada [in]
    Um ponteiro para a função a ser chamada quando ocorre uma alteração. Essa função é chamada quando uma notificação de interface é recebida.

  • CallerContext [in]
    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 da notificação de alteração. Essa notificação inicial não indica que ocorreu uma alteração na rota IP. A finalidade desse parâmetro para fornecer a confirmação de que o retorno de chamada está registrado.

  • NotificationHandle [in, out]
    Um ponteiro para uma estrutura MIB_IPINTERFACE_ROW a ser inicializada. No retorno bem-sucedido, os membros nessa estrutura são inicializados com informações padrão para uma interface no computador local.

Retornar valor

NotifyRouteChange2 retornará STATUS_SUCCESS se a função for bem-sucedida.

Se a função falhar, NotifyRouteChange2 retornará um dos seguintes códigos de erro.

Código de retorno Descrição
ERROR_INVALID_HANDLE

Ocorreu um erro interno em que um identificador inválido foi encontrado.

STATUS_INVALID_PARAMETER

Um parâmetro inválido foi passado para a função. Esse 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

IN PVOID CallerContext

O parâmetro CallerContext que é passado para a função NotifyRouteChange2 ao registrar o driver para notificações de alteração.

IN PMIB_IPFORWARD_ROW2 Row OPTIONAL

Um ponteiro para a entrada de MIB_IPFORWARD_ROW2 para a entrada de rota IP que foi alterada. Esse parâmetro é um ponteiro 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 só poderá ocorrer se o parâmetro InitialNotification passado para NotifyRouteChange2 tiver sido 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 desregistrar o driver para notificações de alteração, chame a função CancelMibChangeNotify2 , passando o parâmetro NotificationHandle que NotifyRouteChange2 retorna.

Requisitos

Plataforma de destino

Universal

Versão

Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.

Cabeçalho

Netioapi.h (inclua Netioapi.h)

Biblioteca

Netio.lib

IRQL

< DISPATCH_LEVEL

Confira também

CancelMibChangeNotify2

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_NOTIFICATION_TYPE

SetIpForwardEntry2