Condividi tramite


Funzione ResolveIpNetEntry2

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

Sintassi

NETIOAPI_API ResolveIpNetEntry2(
  _Inout_        PMIB_IPNET_ROW2 Row,
  _In_opt_ const SOCKADDR_INET   *SourceAddress
);

Parametri

  • riga [in, out]
    Puntatore a una voce della struttura MIB_IPNET_ROW2 per una voce di indirizzo IP adiacente. In caso di esito positivo, questa struttura viene aggiornata con le proprietà per l'indirizzo IP adiacente.

  • sourceAddress [in, facoltativo]
    Puntatore a un indirizzo IP di origine facoltativo usato per selezionare l'interfaccia per inviare le richieste per la voce dell'indirizzo IP adiacente.

Valore restituito

ResolveIpNetEntry2 restituisce STATUS_SUCCESS se la funzione ha esito positivo.

Se la funzione non riesce, ResolveIpNetEntry2 restituisce uno dei codici di errore seguenti:

Codice restituito Descrizione
STATUS_BAD_NETWORK_NAME

Impossibile trovare il nome di rete. Questo errore viene restituito se la rete con l'indirizzo IP adiacente non è raggiungibile.

STATUS_INVALID_PARAMETER

Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se viene passato un puntatore NULL nel parametro Row, Il membro Address della struttura MIB_IPNET_ROW2 a cui punta il parametro Row non è stato impostato su un indirizzo IPv4 o IPv6 valido oppure sia InterfaceLuid che InterfaceIndex membri della struttura MIB_IPNET_ROW2 non sono stati specificati. Questo errore viene restituito anche se è stato passato un indirizzo di loopback nel membro Address.

STATUS_NOT_FOUND

Impossibile trovare l'interfaccia specificata. Questo errore viene restituito se la funzione non riesce a trovare l'interfaccia di rete specificata dal InterfaceLuid o InterfaceIndex membro della struttura MIB_IPNET_ROW2 a cui punta il parametro Row.

STATUS_NOT_SUPPORTED

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 della struttura MIB_IPNET_ROW2 a cui punta il parametro riga oppure se non si trova alcun stack IPv6 nel computer locale e un indirizzo IPv6 è stato specificato nel membro Address.

Altro

Usare la funzione FormatMessage per ottenere la stringa del messaggio per l'errore restituito.

Osservazioni

La funzione ResolveIpNetEntry2 viene usata per risolvere l'indirizzo fisico per una voce di indirizzo IP adiacente in un computer locale. Questa funzione scarica tutte le voci adiacenti esistenti che corrispondono all'indirizzo IP nell'interfaccia e quindi risolve l'indirizzo MAC inviando richieste ARP per un indirizzo IPv4 o Neighbor Solicitation (NS) per un indirizzo IPv6. Se viene specificato il parametro SourceAddress, ResolveIpNetEntry2 seleziona l'interfaccia con questo indirizzo IP di origine per inviare le richieste. Se il parametro sourceAddress non è specificato ( NULL è stato passato in questo parametro), ResolveIpNetEntry2 seleziona automaticamente l'interfaccia migliore per inviare le richieste.

Il driver deve inizializzare i membri seguenti della struttura di MIB_IPNET_ROW2 a cui punta il parametro Riga.

  • Address
    Impostare su un indirizzo e una famiglia IPv4 o IPv6 validi.

  • InterfaceLuid o InterfaceIndex
    Questi membri vengono utilizzati nell'ordine elencato in precedenza. Pertanto, se si specifica InterfaceLuid, questo membro viene usato per determinare l'interfaccia. Se non è stato impostato alcun valore per il membro InterfaceLuid (il valore di questo membro è stato impostato su zero), il membro InterfaceIndex viene usato successivamente per determinare l'interfaccia.

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

Nell'output, 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 vengono inizializzati in un indirizzo fisico valido.

Fabbisogno

Piattaforma di destinazione

universale

Versione

Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.

Intestazione

Netioapi.h (include Netioapi.h)

Biblioteca

Netio.lib

IRQL

< DISPATCH_LEVEL

Vedere anche

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

getIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2