Condividi tramite


Funzione ResolveIpNetEntry2 (netioapi.h)

La funzione ResolveIpNetEntry2 risolve l'indirizzo fisico per una voce di indirizzo IP adiacente nel computer locale.

Sintassi

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API ResolveIpNetEntry2(
  [in, out]      PMIB_IPNET_ROW2     Row,
  [in, optional] const SOCKADDR_INET *SourceAddress
);

Parametri

[in, out] Row

Puntatore a una voce di struttura MIB_IPNET_ROW2 per una voce di indirizzo IP adiacente. Al termine della restituzione, questa struttura verrà aggiornata con le proprietà per l'indirizzo IP adiacente.

[in, optional] SourceAddress

Puntatore a un indirizzo IP di origine facoltativo usato per selezionare l'interfaccia per inviare le richieste per la voce di indirizzo IP adiacente.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene NO_ERROR.

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_BAD_NET_NAME
Impossibile trovare il nome della rete. Questo errore viene restituito se la rete con l'indirizzo IP adiacente non è raggiungibile.
ERROR_INVALID_PARAMETER
Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se un puntatore NULL viene passato nel parametro Row , il membro Address del MIB_IPNET_ROW2 a cui punta il parametro Row non è stato impostato su un indirizzo IPv4 o IPv6 valido oppure entrambi i membri InterfaceLuid o InterfaceIndex del MIB_IPNET_ROW2 a cui punta il parametro Row non sono stati specificati. Questo errore viene restituito anche se è stato passato un indirizzo di loopback nel membro Address .
ERROR_NOT_FOUND
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 a cui punta il parametro Row .
ERROR_NOT_SUPPORTED
La richiesta non è supportata. Questo errore viene restituito se nel computer locale non è presente alcun stack IPv4 e nel membro Address del MIB_IPNET_ROW2 indicato dal parametro Row o non è presente alcun stack IPv6 nel computer locale e nel membro Address è stato specificato un indirizzo IPv6.
Altri
Usare FormatMessage per ottenere la stringa del messaggio per l'errore restituito.

Commenti

La funzione ResolveIpNetEntry2 viene definita in Windows Vista e versioni successive.

La funzione ResolveIpNetEntry2 viene usata per risolvere l'indirizzo fisico per una voce di indirizzo IP adiacente in un computer locale. Questa funzione scarica qualsiasi voce adiacente esistente corrispondente all'indirizzo IP nell'interfaccia e quindi risolve l'indirizzo MAC inviando richieste ARP per un indirizzo IPv4 o richieste di richiesta adiacenti per un indirizzo IPv6. Se viene specificato il parametro SourceAddress , la funzione ResolveIpNetEntry2 selezionerà l'interfaccia con questo indirizzo IP di origine per inviare le richieste. Se il parametro SourceAddress non viene specificato (è stato passato NULL in questo parametro), la funzione ResolveIpNetEntry2 selezionerà automaticamente l'interfaccia migliore per inviare le richieste.

Il membro Address nella struttura MIB_IPNET_ROW2 a cui punta il parametro Row deve essere inizializzato in un indirizzo e una famiglia IPv4 o IPv6 validi. 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 indicato in precedenza. 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 sono stati impostati su zero), il membro InterfaceIndex viene usato successivamente per determinare l'interfaccia.

Se l'indirizzo IP passato nel membro Address del MIB_IPNET_ROW2 a cui punta il parametro Row è un duplicato di un indirizzo IP adiacente esistente nell'interfaccia, la funzione ResolveIpNetEntry2 svuota la voce esistente prima di risolvere l'indirizzo IP.

Quando la chiamata ha esito positivo, ResolveIpNetEntry2 recupera le altre proprietà per l'indirizzo IP adiacente e compila la struttura MIB_IPNET_ROW2 a cui punta il parametro Row . I membri PhysicalAddress e PhysicalAddressLength nella struttura MIB_IPNET_ROW2 a cui punta il parametro Row verranno inizializzati in un indirizzo fisico valido.

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 (include Iphlpapi.h)
Libreria Iphlpapi.lib
DLL Iphlpapi.dll

Vedi anche

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SOCKADDR_INET

SetIpNetEntry2