estructura ADDRINFOEX6 (ws2def.h)
La estructura
Sintaxis
typedef struct addrinfoex6 {
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
size_t ai_addrlen;
PWSTR ai_canonname;
struct sockaddr *ai_addr;
void *ai_blob;
size_t ai_bloblen;
GUID *ai_provider;
struct addrinfoex5 *ai_next;
int ai_version;
PWSTR ai_fqdn;
int ai_interfaceindex;
HANDLE ai_resolutionhandle;
unsigned int ai_ttl;
unsigned int ai_numservers;
ADDRINFO_DNS_SERVER *ai_servers;
ULONG64 ai_responseflags;
} ADDRINFOEX6, *PADDRINFOEX6;
Miembros
ai_flags
Marcas que indican las opciones usadas en la función
Los valores admitidos para el miembro ai_flags se definen en el winsock2.h archivo de inclusión y pueden ser una combinación de las siguientes opciones.
Valor | Significado |
---|---|
|
La dirección del socket se usará en una llamada a la función enlazar. |
|
El nombre canónico se devuelve en el primer miembro ai_canonname. |
|
El parámetro nodename pasado a la función GetAddrInfoEx debe ser una cadena numérica. |
|
Si se establece este bit, se realiza una solicitud para las direcciones IPv6 e IPv4 con AI_V4MAPPED.
Esta opción se admite en Windows Vista y versiones posteriores. |
|
El GetAddrInfoEx de Esta opción se admite en Windows Vista y versiones posteriores. |
|
Si se produce un error en la solicitud de getAddrInfoEx de Esta opción se admite en Windows Vista y versiones posteriores. |
|
La información de dirección procede de resultados no autoritativos.
Cuando esta opción se establece en el parámetro pHints de GetAddrInfoEx, el proveedor de espacios de nombres NS_EMAIL devuelve resultados autoritativos y no autoritativos. Si no se establece esta opción, solo se devuelven los resultados autoritativos. Esta opción solo se admite en Windows Vista y versiones posteriores para el espacio de nombres NS_EMAIL. |
|
La información de dirección procede de un canal seguro.
Si se establece el AI_SECURE bit, el proveedor de espacio de nombres NS_EMAIL devolverá los resultados obtenidos con seguridad mejorada para minimizar la posible suplantación de identidad. Cuando esta opción se establece en el parámetro pHints de GetAddrInfoEx, el proveedor de espacio de nombres NS_EMAIL devuelve solo los resultados obtenidos con seguridad mejorada para minimizar la posible suplantación de identidad. Esta opción solo se admite en Windows Vista y versiones posteriores para el espacio de nombres NS_EMAIL. |
|
La información de dirección es para los nombres preferidos para la publicación con un espacio de nombres específico.
Cuando esta opción se establece en el parámetro pHints de GetAddrInfoEx, no se debe proporcionar ningún nombre en el parámetro pName y el proveedor de espacios de nombres de NS_EMAIL devolverá nombres preferidos para la publicación. Esta opción solo se admite en Windows Vista y versiones posteriores para el espacio de nombres NS_EMAIL. |
|
El nombre de dominio completo se devuelve en el primer miembro ai_fqdn.
Cuando esta opción se establece en el parámetro pHints de GetAddrInfoEx y se especifica un nombre plano (etiqueta única) en el parámetro pName, se devolverá el nombre de dominio completo que el nombre finalmente resolvió. Esta opción es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores. |
|
Sugerencia al proveedor de espacios de nombres que se está consultando el nombre de host que se está usando en un escenario de recurso compartido de archivos. El proveedor de espacios de nombres puede omitir esta sugerencia.
Esta opción es compatible con Windows 7, Windows Server 2008 R2 y versiones posteriores. |
|
Deshabilite la codificación automática de nombres de dominio internacionales mediante Punycode en las funciones de resolución de nombres a las que llama la función GetAddrInfoEx de Esta opción es compatible con Windows 8, Windows Server 2012 y versiones posteriores. |
|
Indica que el objeto actual se extiende: es decir, un addrinfoex2 o superior.
Esta opción se admite en Windows 8.1, Windows Server 2012 R2 y versiones posteriores. |
|
Se devuelve un identificador de resolución en el miembro ai_resolutionhandle.
Esta opción se admite en Windows 10, Windows Server 2016 y versiones posteriores. |
|
Número de segundos para los que el registro DNS es válido. Si esta marca está presente, |
|
De forma predeterminada, los servidores especificados en el miembro ai_servers se usan como reserva para los servidores DNS del sistema. Si se especifica esta opción, la consulta DNS usará los servidores personalizados especificados en ai_server exclusivamente. |
|
Solicita información adicional sobre los resultados de DNS. Si esta marca está presente, el parámetro GetAddrInfoExppResult devolverá una lista de estructuras addrinfoex6, donde el miembro ai_responseflags contendrá información sobre el origen de los resultados de DNS. |
ai_family
Familia de direcciones.
Los valores posibles para la familia de direcciones se definen en el archivo de encabezado Ws2def.h. Tenga en cuenta que el archivo de encabezado de Ws2def.h se incluye automáticamente en Winsock2.hy nunca se debe usar directamente.
Los valores admitidos actualmente son AF_INET o AF_INET6, que son los formatos de familia de direcciones de Internet para IPv4 e IPv6. Se admiten otras opciones para la familia de direcciones (AF_NETBIOS para su uso con NetBIOS, por ejemplo) si se instala un proveedor de servicios de Windows Sockets para la familia de direcciones. Tenga en cuenta que los valores de la familia de direcciones AF_ y las constantes de familia de protocolos PF_ son idénticos (por ejemplo, AF_INET y PF_INET), por lo que se puede usar cualquier constante.
En la tabla siguiente se enumeran los valores comunes de la familia de direcciones, aunque muchos otros valores son posibles.
ai_socktype
Tipo de socket. Los valores posibles para el tipo de socket se definen en el winsock2.h archivo de inclusión.
En la tabla siguiente se enumeran los valores posibles para el tipo de socket admitido para Windows Sockets 2:
Valor | Significado |
---|---|
|
Proporciona flujos de bytes secuenciados, confiables, bidireccionales y basados en la conexión con un mecanismo de transmisión de datos OOB. Usa el Protocolo de control de transmisión (TCP) para la familia de direcciones de Internet (AF_INET o AF_INET6). Si el miembro ai_family es AF_IRDA, SOCK_STREAM es el único tipo de socket admitido. |
|
Admite datagramas, que son a menos que los búferes no confiables de una longitud máxima fija (normalmente pequeña). Usa el Protocolo de datagramas de usuario (UDP) para la familia de direcciones de Internet (AF_INET o AF_INET6). |
|
Proporciona un socket sin procesar que permite a una aplicación manipular el siguiente encabezado de protocolo de capa superior. Para manipular el encabezado IPv4, la opción de socket IP_HDRINCL debe establecerse en el socket. Para manipular el encabezado IPv6, la opción de socket IPV6_HDRINCL debe establecerse en el socket. |
|
Proporciona un datagrama de mensaje confiable. Un ejemplo de este tipo es la implementación pragmática del protocolo de multidifusión general (PGM) en Windows, a menudo denominada programación confiable de multidifusión. |
|
Proporciona un paquete pseudo-stream basado en datagramas. |
En Windows Sockets 2, se introdujeron nuevos tipos de socket. Una aplicación puede detectar dinámicamente los atributos de cada protocolo de transporte disponible a través de la función
En Windows Sockets 1.1, los únicos tipos de socket posibles son SOCK_DATAGRAM y SOCK_STREAM.
ai_protocol
Tipo de protocolo. Las opciones posibles son específicas de la familia de direcciones y el tipo de socket especificado. Los valores posibles para el
En windows SDK publicado para Windows Vista y versiones posteriores, la organización de archivos de encabezado ha cambiado y este miembro puede ser uno de los valores del ipPROTO tipo de enumeración definido en el archivo de encabezado Ws2def.h. Tenga en cuenta que el archivo de encabezado de Ws2def.h se incluye automáticamente en Winsock2.hy nunca se debe usar directamente.
Si se especifica un valor de 0 para ai_protocol, el autor de la llamada no desea especificar un protocolo y el proveedor de servicios elegirá el ai_protocol que se va a usar. En el caso de los protocolos distintos de IPv4 e IPv6, establezca ai_protocol en cero.
En la tabla siguiente se enumeran los valores comunes para el miembro ai_protocol, aunque muchos otros valores son posibles.
Si el miembro ai_family es AF_IRDA, el ai_protocol debe ser 0.
ai_addrlen
Longitud, en bytes, del búfer al que apunta el miembro ai_addr.
ai_canonname
Nombre canónico del host.
ai_addr
Puntero a una estructura sockaddr. El miembro ai_addr de cada addrinfoex4 devuelto estructura apunta a una estructura de direcciones de socket rellenada. La longitud, en bytes, de cada addrinfoex4 estructura se especifica en el miembro ai_addrlen.
ai_blob
Puntero a los datos que se usan para devolver información de espacio de nombres específica del proveedor asociada al nombre más allá de una lista de direcciones. La longitud, en bytes, del búfer al que apunta ai_blob debe especificarse en el miembro ai_bloblen.
ai_bloblen
Longitud, en bytes, del miembro ai_blob.
ai_provider
Puntero al GUID de un proveedor de espacio de nombres específico.
ai_next
Puntero a la siguiente estructura de una lista vinculada. Este parámetro se establece en NULL en la última addrinfoex4 estructura de una lista vinculada.
ai_version
Número de versión de esta estructura. El valor usado actualmente para esta versión de la estructura es 4.
ai_fqdn
Nombre de dominio completo para el host.
ai_interfaceindex
Índice de interfaz, tal como se define en el IP_ADAPTER_ADDRESSES.propiedad IfIndex devuelta en GetAdaptersAddresses.
ai_resolutionhandle
Identificador que apunta al nombre de dominio completo del host.
ai_ttl
Número de segundos para los que este registro DNS es válido.
ai_numservers
Número de servidores DNS personalizados presentes en el miembro ai_servers.
ai_servers
Matriz de N (donde N == ai_numservers) ADDRINFO_DNS_SERVER objetos. Si ai_numservers es 0, ai_servers debe ser NULL.
ai_responseflags
Devuelve un mapa de bits que contiene cualquiera de los valores siguientes.
Constante | Valor | Significado |
---|---|---|
AI_DNS_RESPONSE_SECURE | 0x1 | La respuesta procede de protocolos seguros, como DNS a través de HTTPS. |
AI_DNS_RESPONSE_HOSTFILE | 0x2 | La respuesta procede de los hosts de archivo. |
Observaciones
La estructura ADDRINFOEX6 es una extensión de la estructura ADDRINFOEX5. Además de todos los campos de la estructura ADDRINFOEX5, contiene los miembros ai_numservers y ai_servers, lo que permite el uso de servidores DNS personalizados por consulta. También contiene el miembro ai_responseflags, que contiene información sobre el origen de las respuestas DNS.
Si la marca AI_RETURN_RESPONSE_FLAGS está presente en el miembro ai_flags, el parámetro GetAddrInfoExppResult devolverá una lista de estructuras ADDRINFOEX6, donde el miembro ai_responseflags contendrá información sobre el origen de los resultados dns.
Si los miembros ai_numservers y ai_servers apuntan a una matriz de objetos de ADDRINFO_DNS_SERVER válidos, la consulta DNS agregará estos servidores como reserva a los servidores DNS configurados por el sistema. Si la opción AI_EXCLUSIVE_CUSTOM_SERVERS está presente en el miembro ai_flags, la consulta DNS usará exclusivamente los servidores personalizados.
Ejemplos
Vea código de ejemplo en el tema estructura de ADDRINFOEX4.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Build 22000 |
servidor mínimo admitido | Windows Build 22000 |
encabezado de |
ws2def.h |