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 |