Partilhar via


Função SetUnicastIpAddressEntry

O função SetUnicastIpAddressEntry define as propriedades de uma entrada de endereço IP unicast existente em um computador local.

Sintaxe

NETIOAPI_API SetUnicastIpAddressEntry(
  _In_ const MIB_UNICASTIPADDRESS_ROW *Row
);

Parâmetros

  • Linha [in]
    Um ponteiro para uma entrada de estrutura MIB_UNICASTIPADDRESS_ROW para uma entrada de endereço IP unicast existente.

Valor de retorno

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

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

Código de retorno Descrição
STATUS_INVALID_PARAMETER

Um parâmetro inválido foi passado para a função. Este erro é retornado se um ponteiro de NULL for passado no parâmetro Row, o endereço membro da estrutura de MIB_UNICASTIPADDRESS_ROW para a qual o parâmetro Row aponta não foi definido como um endereço IPv4 ou IPv6 unicast válido, ou ambos InterfaceLuid e InterfaceIndex membros da estrutura MIB_UNICASTIPADDRESS_ROW não foram especificados.

STATUS_NOT_FOUND

A interface especificada não pôde ser encontrada. Este erro é retornado se a função não conseguir encontrar a interface de rede especificada pelo InterfaceLuid ou InterfaceIndex membro da estrutura de MIB_UNICASTIPADDRESS_ROW para a qual o parâmetro Row aponta.

STATUS_NOT_SUPPORTED

A solicitação não é suportada. Este erro será retornado se nenhuma pilha IPv4 estiver localizada no computador local e um endereço IPv4 tiver sido especificado no Address membro da estrutura MIB_UNICASTIPADDRESS_ROW para a qual o parâmetro Row aponta ou se nenhuma pilha IPv6 estiver localizada no computador local e um endereço IPv6 tiver sido especificado no membro Address.

Outros

Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Comentários

O função GetUnicastIpAddressEntry normalmente é usado para recuperar uma entrada de estrutura de MIB_UNICASTIPADDRESS_ROW existente a ser modificada. Um driver pode alterar os membros na entrada MIB_UNICASTIPADDRESS_ROW que deseja modificar e, em seguida, chamar a função SetUnicastIpAddressEntry.

Um driver pode chamar a função InitializeUnicastIpAddressEntry para inicializar os membros de uma entrada de estrutura MIB_UNICASTIPADDRESS_ROW com valores padrão antes de fazer alterações. No entanto, o driver normalmente salva o InterfaceLuid ou membro do InterfaceIndex antes de chamar InitializeUnicastIpAddressEntry e restaura um desses membros após a chamada.

O driver deve inicializar os seguintes membros da estrutura de MIB_UNICASTIPADDRESS_ROW para a qual o parâmetro Row aponta.

  • Endereço
    Defina como um endereço IPv4 ou IPv6 unicast válido e família.

  • InterfaceLuid ou InterfaceIndex
    Esses membros são usados na ordem listada anteriormente. Portanto, se InterfaceLuid for especificado, esse membro será usado para determinar a interface. Se nenhum valor foi definido para o membro InterfaceLuid (o valor desse membro foi definido como zero), o membro InterfaceIndex será usado em seguida para determinar a interface.

Se o OnLinkPrefixLength membro da estrutura MIB_UNICASTIPADDRESS_ROW para a qual o parâmetro Row aponta estiver definido como 255, SetUnicastIpAddressEntry define as propriedades do endereço IP unicast para que o membro OnLinkPrefixLength seja igual ao comprimento do endereço IP. Para um endereço IPv4 unicast, OnLinkPrefixLength é definido como 32. Para um endereço IPv6 unicast, OnLinkPrefixLength é definido como 128. Se essas configurações resultarem na máscara de sub-rede incorreta para um endereço IPv4 ou no prefixo de link incorreto para um endereço IPv6, o driver deverá definir esse membro com o valor correto antes de chamar SetUnicastIpAddressEntry.

SetUnicastIpAddressEntry ignora o DadState, ScopeIde CreationTimeStamp membros da estrutura MIB_UNICASTIPADDRESS_ROW para a qual o parâmetro Row aponta. Esses membros são definidos pela pilha de rede e não podem ser alterados usando a função SetUnicastIpAddressEntry. O membro do ScopeId é determinado automaticamente pela interface na qual o endereço foi adicionado.

Requerimentos

Plataforma de destino

Universal

Versão

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

Cabeçalho

Netioapi.h (inclui Netioapi.h)

Biblioteca

Netio.lib

IRQL

< DISPATCH_LEVEL

Ver também

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyUnicastIpAddressChange