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 NotifyStableUnicastIpAddressTable recupera a tabela de endereços IP unicast estável em um computador local.
Sintaxe
NETIOAPI_API NotifyStableUnicastIpAddressTable(
_In_ ADDRESS_FAMILY Family,
_Out_ PMIB_UNICASTIPADDRESS_TABLE *Table,
_In_ PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback,
_In_ PVOID CallerContext,
_Inout_ HANDLE *NotificationHandle
);
Parâmetros
Família [in]
A família de endereços a ser recuperada.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, a função recupera a tabela de endereços IP unicast estável que contém apenas entradas IPv4.AF_INET6
A família de endereços IPv6. Quando esse valor é especificado, a função recupera a tabela de endereços IP unicast estável que contém apenas entradas IPv6.AF_UNSPEC
A família de endereços não é especificada. Quando esse valor é especificado, a função recupera a tabela de endereços IP unicast estável que contém entradas IPv4 e IPv6.
Tabela [out]
Um ponteiro para uma estrutura MIB_UNICASTIPADDRESS_TABLE. Quando NotifyStableUnicastIpAddressTable é bem-sucedido, esse parâmetro retorna a tabela de endereços IP unicast estável no computador local.Quando NotifyStableUnicastIpAddressTable retorna ERROR_IO_PENDING, o que indica que a solicitação de E/S está pendente, a tabela de endereços IP unicast estável é retornada para a função no parâmetro CallerCallback.
CallerCallback [em]
Um ponteiro para a função a ser chamada com a tabela de endereços IP unicast estável. Essa função é chamada se NotifyStableUnicastIpAddressTable retornar ERROR_IO_PENDING, o que indica que a solicitação de E/S está pendente.CallerContext [em]
Um contexto de usuário que é passado para a função de retorno de chamada especificada no parâmetro CallerCallback quando a tabela de endereços IP unicast estável está disponível.NotificationHandle [entrada, saída]
Um ponteiro que é usado para retornar um identificador que seu driver pode usar para cancelar a solicitação para recuperar a tabela de endereços IP unicast estável. Esse parâmetro será retornado se o valor de retorno de NotifyStableUnicastIpAddressTable for ERROR_IO_PENDING, o que indica que a solicitação de E/S está pendente.
Valor de retorno
NotifyStableUnicastIpAddressTable retorna STATUS_SUCCESS e a tabela IP unicast estável é retornada no parâmetro Table se a função for bem-sucedida imediatamente.
Se a solicitação de E/S estiver pendente, a função retornará ERROR_IO_PENDING e a função para a qual o parâmetro CallerCallback aponta será chamada quando a solicitação de E/S for concluída com a tabela de endereços IP unicast estável.
Se a função falhar, NotifyStableUnicastIpAddressTable 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 Table for um ponteiro de NULL, se o parâmetro NotificationHandle for um ponteiro NULL ou se o parâmetro da família não for 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
Todos os endereços IP unicast, exceto endereços dial-on-demand, são considerados estáveis somente se estiverem no estado preferencial. Para uma entrada de endereço IP unicast normal, esse estado corresponderia a um DadState membro do MIB_UNICASTIPADDRESS_ROW para o endereço IP definido como IpDadStatePreferred. Cada endereço de discagem sob demanda define sua própria métrica de estabilidade. Atualmente, o único endereço de discagem sob demanda que a função NotifyStableUnicastIpAddressTable considera é o endereço IP unicast que o cliente Teredo usa no computador local.
O driver deve definir o parâmetro Family como AF_INET, AF_INET6 ou AF_UNSPEC.
Quando NotifyStableUnicastIpAddressTable é bem-sucedido e retorna STATUS_SUCCESS, o parâmetro Table retorna a tabela de endereços IP unicast estável no computador local.
Quando NotifyStableUnicastIpAddressTable retorna ERROR_IO_PENDING, o que indica que a solicitação de E/S está pendente, a tabela de endereços IP unicast estável é retornada para a função no parâmetro CallerCallback.
Se o endereço IP unicast que Teredo usa estiver disponível no computador local, mas não no estado estável (qualificado), NotifyStableUnicastIpAddressTable retornará ERROR_IO_PENDING e a tabela de endereços IP unicast estável será eventualmente retornada chamando a função no parâmetro CallerCallback. Se o endereço Teredo não estiver disponível ou estiver no estado estável e os outros endereços IP unicast estiverem em um estado estável, a função no parâmetro CallerCallback nunca será chamada.
A função de retorno de chamada especificada no parâmetro CallerCallback 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 parâmetro CallerContext que é passado para a função NotifyStableUnicastIpAddressTable quando está registrando o driver para notificações. |
IN PMIB_UNICASTIPADDRESS_TABLE AddressTable |
Um ponteiro para uma estrutura MIB_UNICASTIPADDRESS_TABLE que contém a tabela de endereços IP unicast estável no computador local. |
A função NotifyStableUnicastIpAddressTable é usada principalmente por drivers que usam o cliente Teredo.
Para cancelar a notificação após a conclusão do retorno de chamada, chame a funçãoCancelMibChangeNotify2, passando o parâmetro NotificationHandle que NotifyStableUnicastIpAddressTable retorna.