Partager via


SetUnicastIpAddressEntry, fonction

La fonction SetUnicastIpAddressEntry définit les propriétés d’une entrée d’adresse IP de monodiffusion existante sur un ordinateur local.

Syntaxe

NETIOAPI_API SetUnicastIpAddressEntry(
  _In_ const MIB_UNICASTIPADDRESS_ROW *Row
);

Paramètres

Valeur retournée

SetUnicastIpAddressEntry retourne STATUS_SUCCESS si la fonction réussit.

Si la fonction échoue, SetUnicastIpAddressEntry retourne l’un des codes d’erreur suivants :

Code de retour Description
STATUS_INVALID_PARAMETER

Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si un pointeur NULL est passé dans le paramètre Row , si le membre Address de la structure MIB_UNICASTIPADDRESS_ROW vers laquelle le paramètre Row pointe n’a pas été défini sur une adresse IPv4 ou IPv6 de monodiffusion valide, ou si les membres InterfaceLuid et InterfaceIndex de la structure MIB_UNICASTIPADDRESS_ROW n’ont pas été spécifiés.

STATUS_NOT_FOUND

L’interface spécifiée est introuvable. Cette erreur est retournée si la fonction ne trouve pas l’interface réseau spécifiée par le membre InterfaceLuid ou InterfaceIndex de la structure MIB_UNICASTIPADDRESS_ROW vers laquelle pointe le paramètre Row .

STATUS_NOT_SUPPORTED

La demande n'est pas prise en charge. Cette erreur est retournée si aucune pile IPv4 ne se trouve sur l’ordinateur local et qu’une adresse IPv4 a été spécifiée dans le membre Address de la structure MIB_UNICASTIPADDRESS_ROW vers laquelle pointe le paramètre Row , ou si aucune pile IPv6 ne se trouve sur l’ordinateur local et qu’une adresse IPv6 a été spécifiée dans le membre Address .

Autres

Utilisez la fonction FormatMessage pour obtenir la chaîne de message de l’erreur retournée.

Notes

La fonction GetUnicastIpAddressEntry est généralement utilisée pour récupérer une entrée de structure MIB_UNICASTIPADDRESS_ROW existante à modifier. Un pilote peut ensuite modifier les membres de l’entrée MIB_UNICASTIPADDRESS_ROW qu’il souhaite modifier, puis appeler la fonction SetUnicastIpAddressEntry .

Un pilote peut appeler la fonction InitializeUnicastIpAddressEntry pour initialiser les membres d’une entrée de structure MIB_UNICASTIPADDRESS_ROW avec des valeurs par défaut avant d’apporter des modifications. Toutefois, le pilote enregistre généralement le membre InterfaceLuid ou InterfaceIndex avant d’appeler InitializeUnicastIpAddressEntry et restaure l’un de ces membres après l’appel.

Votre pilote doit initialiser les membres suivants de la structure MIB_UNICASTIPADDRESS_ROW vers laquelle pointe le paramètre Row .

  • Adresse
    Définissez sur une adresse et une famille IPv4 ou IPv6 en monodiffusion valides.

  • InterfaceLuid ou InterfaceIndex
    Ces membres sont utilisés dans l’ordre indiqué précédemment. Par conséquent, si InterfaceLuid est spécifié, ce membre est utilisé pour déterminer l’interface. Si aucune valeur n’a été définie pour le membre InterfaceLuid (la valeur de ce membre a été définie sur zéro), le membre InterfaceIndex est ensuite utilisé pour déterminer l’interface.

Si le membre OnLinkPrefixLength de la structure MIB_UNICASTIPADDRESS_ROW vers laquelle pointe le paramètre Row a la valeur 255, SetUnicastIpAddressEntry définit les propriétés d’adresse IP de monodiffusion afin que le membre OnLinkPrefixLength soit égal à la longueur de l’adresse IP. Pour une adresse IPv4 monodiffusion, OnLinkPrefixLength est défini sur 32. Pour une adresse IPv6 monodiffusion, OnLinkPrefixLength est défini sur 128. Si ces paramètres entraînent un masque de sous-réseau incorrect pour une adresse IPv4 ou un préfixe de lien incorrect pour une adresse IPv6, le pilote doit définir ce membre sur la valeur correcte avant d’appeler SetUnicastIpAddressEntry.

SetUnicastIpAddressEntry ignore les membres DadState, ScopeId et CreationTimeStamp de la structure MIB_UNICASTIPADDRESS_ROW vers laquelle pointe le paramètre Row . Ces membres sont définis par la pile réseau et ne peuvent pas être modifiés à l’aide de la fonction SetUnicastIpAddressEntry . Le membre ScopeId est automatiquement déterminé par l’interface sur laquelle l’adresse a été ajoutée.

Spécifications

Plateforme cible

Universal

Version

Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.

En-tête

Netioapi.h (inclure Netioapi.h)

Bibliothèque

Netio.lib

IRQL

< DISPATCH_LEVEL

Voir aussi

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyUnicastIpAddressChange