Uso di SIO_ADDRESS_LIST_SORT

Il SIO_ADDRESS_LIST_SORT IOCTL consente agli sviluppatori di applicazioni di ordinare un elenco di indirizzi di destinazione IPv6 e IPv4 per determinare l'indirizzo migliore disponibile per stabilire una connessione. Il SIO_ADDRESS_LIST_SORT IOCTL è supportato in Windows XP e versioni successive.

In Windows Vista e versioni successive, la funzione CreateSortedAddressPairs accetta un elenco fornito di potenziali indirizzi IP di destinazione, associa gli indirizzi di destinazione agli indirizzi IP locali del computer host e ordina le coppie in base alla coppia di indirizzi più adatta per la comunicazione tra i due peer. La funzione CreateSortedAddressPairs deve essere usata invece del SIO_ADDRESS_LIST_SORT IOCTL in Windows Vista e versioni successive.

Le sezioni seguenti descrivono le considerazioni sull'utilizzo per SIO_ADDRESS_LIST_SORT.

Parametri

Il buffer passato a SIO_ADDRESS_LIST_SORT è una struttura SOCKET_ADDRESS_LIST . Ogni SOCKET_ADDRESS nell'elenco deve essere in formato SOCKADDR_IN6.

Il SIO_ADDRESS_LIST_SORT IOCTL ordina sia gli indirizzi IPv6 che IPv4 in Windows Vista e versioni successive. Tutti gli indirizzi IPv4 nell'elenco da ordinare devono essere nel formato di indirizzo IPv4 mappato a IPv6. Per altre informazioni sul formato di indirizzi IPv4 mappato a IPv6, vedere Dual-Stack Sockets.For more information on the IPv4-mappingd IPv6 address format, see Dual-Stack Sockets.

In Windows Server 2003 e Windows XP SIO_ADDRESS_LIST_SORT ordina solo indirizzi IPv6. Gli indirizzi IPv4 nel formato di indirizzi IPv4 mappato a IPv6 non sono supportati.

Nell'output, il membro iAddressCount della struttura SOCKET_ADDRESS_LIST può essere inferiore rispetto all'input se il codice IOCTL determina che alcuni indirizzi di destinazione non sono validi.

Determinazione dell'ordinamento

L'ordinamento per gli indirizzi IPv6 per il SIO_ADDRESS_LIST_SORT IOCTL è basato sulla tabella dei criteri di prefisso. La tabella dei criteri di prefisso viene configurata usando l'utilità della riga di comandoNetsh.exe. I frammenti di riga di comando seguenti illustrano i comandi di configurazione della tabella dei criteri di prefissoNetsh.exe di base:

netsh interface ipv6 show prefixpolicies
netsh interface ipv6 add prefixpolicy ::/96 3 4
netsh interface ipv6 delete prefixpolicy ::/96
netsh interface ipv6 set prefixpolicy ::/96 3 4

Nota

In Windows Server 2003 e Windows XP il primo comando netsh elencato in precedenza era il seguente. Tutti gli altri comandi correlati sono gli stessi.

 

netsh interface ipv6 show prefixpolicy

L'ordinamento degli indirizzi è determinato anche da un algoritmo descritto in RFC 3484 on Default Address Selection for Internet Protocol versione 6 (IPv6) pubblicato da IETF. Per altre informazioni, vedere https://www.ietf.org/rfc/rfc3484.txt. Questa risorsa può essere disponibile solo in inglese.

Il SIO_ADDRESS_LIST_SORT IOCTL ordina gli indirizzi dal migliore al peggiore e compila i membri sin6_scope_id , se necessario. Per gli indirizzi locali del sito, SIO_ADDRESS_LIST_SORT compila l'ID ambito o rimuove l'indirizzo.

Il SIO_ADDRESS_LIST_SORT IOCTL ignora l'indirizzo di origine associato al socket e ordina solo in base all'elenco di indirizzi di destinazione passato come parametro.

La funzione CreateSortedAddressPairs deve essere usata invece del SIO_ADDRESS_LIST_SORT IOCTL in Windows Vista e versioni successive. La funzione CreateSortedAddressPairs restituisce un elenco di coppie di indirizzi che contiene un indirizzo di origine locale e un indirizzo di destinazione. Fornisce a un'applicazione l'indirizzo di origine corretto da usare per ogni indirizzo di destinazione. Un'applicazione può anche filtrare i risultati cercando un indirizzo di origine specifico. nei risultati.

Requisiti

Il SIO_ADDRESS_LIST_SORT IOCTL è definito nel file di intestazione Winsock2.h . In Microsoft Windows Software Development Kit (SDK) rilasciato per Windows Vista e versioni successive, l'organizzazione dei file di intestazione è stata modificata e SIO_ADDRESS_LIST_SORT IOCTL è definito nel file di intestazione Ws2def.h . Si noti che il file di intestazione Ws2def.h viene automaticamente incluso in Winsock2.h e non deve mai essere usato direttamente.

Il SIO_ADDRESS_LIST_SORT IOCTL è supportato in Windows XP e versioni successive.

CreateSortedAddressPairs