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 di struttura MIB_IPNET_ROW2 per una voce di indirizzo IP adiacente. Al termine della restituzione, questa struttura viene aggiornata con le proprietà per l'indirizzo IP adiacente.

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

Valore restituito

ResolveIpNetEntry2 restituisce STATUS_SUCCESS se la funzione ha esito positivo.

Se la funzione ha esito negativo, ResolveIpNetEntry2 restituisce uno dei codici di errore seguenti:

Codice restituito Descrizione
STATUS_BAD_NETWORK_NAME

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

STATUS_INVALID_PARAMETER

Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se un puntatore NULL viene passato nel parametro Row , il membro Address della struttura MIB_IPNET_ROW2 che il parametro Row punta a non è stato impostato su un indirizzo IPv4 o IPv6 valido oppure i membri InterfaceLuid e InterfaceIndex della struttura MIB_IPNET_ROW2 non sono stati specificati. Questo errore viene restituito anche se un indirizzo di loopback è stato passato 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 membro InterfaceLuid o InterfaceIndex 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 Indirizzo della struttura MIB_IPNET_ROW2 a cui punta il parametro Row o se non si trova alcun stack IPv6 nel computer locale e un indirizzo IPv6 è stato specificato nel membro Indirizzo .

Altri

Utilizzare la funzione FormatMessage per ottenere la stringa di messaggio per l'errore restituito.

Commenti

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 vicina esistente che corrisponde all'indirizzo IP nell'interfaccia e quindi risolve l'indirizzo MAC (Physical Address) inviando richieste ARP per un indirizzo IPv4 o richieste NS (Neighbor Solicitation) 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 viene 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 MIB_IPNET_ROW2 a cui punta il parametro Row .

  • Indirizzo
    Impostare su un indirizzo IPv4 o IPv6 valido e una famiglia.

  • InterfaceLuid o InterfaceIndex
    Questi membri vengono usati nell'ordine elencato in precedenza. Quindi, se InterfaceLuid viene specificato, 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 inserisce 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.

Requisiti

Piattaforma di destinazione

Universale

Versione

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

Intestazione

Netioapi.h (include Netioapi.h)

Libreria

Netio.lib

IRQL

< DISPATCH_LEVEL

Vedi anche

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2