Funzione SetIpNetEntry2 (netioapi.h)
La funzione SetIpNetEntry2 imposta l'indirizzo fisico di una voce di indirizzo IP adiacente esistente nel computer locale.
Sintassi
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API SetIpNetEntry2(
[in, out] PMIB_IPNET_ROW2 Row
);
Parametri
[in, out] Row
Puntatore a una voce di struttura MIB_IPNET_ROW2 per una voce di indirizzo IP adiacente.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è NO_ERROR.
Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
Accesso negato. Questo errore viene restituito in diverse condizioni che includono quanto segue: l'utente non dispone dei privilegi amministrativi necessari nel computer locale o l'applicazione non è in esecuzione in una shell avanzata come amministratore predefinito (amministratore RunAs). |
|
Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se un puntatore NULL viene passato al parametro Row, il membro Address del MIB_IPNET_ROW2 indicato dal parametro Row non è stato impostato su un indirizzo IPv4 o IPv6 valido, il membro PhysicalAddress e PhysicalAddressLengthMIB_IPNET_ROW2 del parametro Row non è stato impostato su un indirizzo fisico valido, o entrambi i membri InterfaceLuid o InterfaceIndex del MIB_IPNET_ROW2 puntati dal parametro Row non sono stati specificati. Questo errore viene restituito anche se un indirizzo di loopback è stato passato nel membro Address . |
|
Impossibile trovare l'interfaccia specificata. Questo errore viene restituito se non è stato possibile trovare l'interfaccia di rete specificata dal membro InterfaceLuid o InterfaceIndex del MIB_IPNET_ROW2 puntato dal parametro Row . |
|
La richiesta non è supportata. Questo errore viene restituito se non si trova alcun stack IPv4 nel computer locale e un indirizzo IPv4 è stato specificato nel membro Address del MIB_IPNET_ROW2 puntato dal parametro Row o nessun stack IPv6 si trova nel computer locale e un indirizzo IPv6 è stato specificato nel membro Address . |
|
Usare FormatMessage per ottenere la stringa di messaggio per l'errore restituito. |
Commenti
La funzione SetIpNetEntry2 è definita in Windows Vista e versioni successive.
La funzione SetIpNetEntry2 viene usata per impostare l'indirizzo fisico per una voce di indirizzo IP adiacente esistente in un computer locale.
Il membro Address nella struttura MIB_IPNET_ROW2 puntato dal parametro Row deve essere inizializzato in un indirizzo IPv4 o IPv6 valido unicast, anycast o multicast. I membri PhysicalAddress e PhysicalAddressLength nella struttura MIB_IPNET_ROW2 puntano al parametro Row devono essere inizializzati in un indirizzo fisico valido. Inoltre, almeno uno dei membri seguenti nella struttura MIB_IPNET_ROW2 punta al parametro Row deve essere inizializzato all'interfaccia: InterfaceLuid o InterfaceIndex.
I campi vengono usati nell'ordine elencato sopra. Quindi, se si specifica InterfaceLuid , questo membro viene usato per determinare l'interfaccia in cui aggiungere l'indirizzo IP unicast. Se non è stato impostato alcun valore per il membro InterfaceLuid (i valori di questo membro è stato impostato su zero), il membro InterfaceIndex viene usato successivamente per determinare l'interfaccia.
La funzione SetIpNetEntry2 avrà esito negativo se l'indirizzo IP passato nel membro Indirizzo del MIB_IPNET_ROW2 puntato dal parametro Row non è un indirizzo IP adiacente esistente nell'interfaccia specificata.
La funzione SetIpNetEntry2 può essere chiamata solo da un utente connesso come membro del gruppo Administrators. Se SetIpNetEntry2 viene chiamato da un utente che non è membro del gruppo Administrators, la chiamata alla funzione avrà esito negativo e ERROR_ACCESS_DENIED viene restituita.
La funzione SetIpNetEntry2 può anche non riuscire a causa del controllo dell'account utente in Windows Vista e versioni successive. Se un'applicazione contenente questa funzione viene eseguita da un utente connesso come membro del gruppo Administrators diverso dall'amministratore predefinito, questa chiamata avrà esito negativo a meno che l'applicazione non sia stata contrassegnata nel file manifesto con un set requestedExecutionLevel per richiedereAdministrator. Se l'applicazione manca di questo file manifesto, un utente ha eseguito l'accesso come membro del gruppo Administrators diverso dall'amministratore predefinito, deve quindi eseguire l'applicazione in una shell avanzata come amministratore predefinito (amministratore RunAs) per la riuscita di questa funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | netioapi.h (includere Iphlpapi.h) |
Libreria | Iphlpapi.lib |
DLL | Iphlpapi.dll |