Compartir a través de


función DnsQuery_W (windns.h)

El tipo de función DnsQuery es la interfaz de consulta genérica para el espacio de nombres DNS y proporciona a los desarrolladores de aplicaciones una interfaz de resolución de consultas DNS. Al igual que muchas funciones DNS, el tipo de función DnsQuery se implementa en varios formularios para facilitar la codificación de caracteres diferentes. En función de la codificación de caracteres implicada, use una de las siguientes funciones:

  • DnsQuery_A (para codificación ANSI)
  • DnsQuery_W (para la codificación Unicode)
  • DnsQuery_UTF8 (para codificación UTF-8)
Windows 8: la función DnsQueryEx debe usarse si una aplicación requiere consultas asincrónicas en el espacio de nombres DNS.

Sintaxis

DNS_STATUS DnsQuery_W(
  [in]                PCWSTR      pszName,
  [in]                WORD        wType,
  [in]                DWORD       Options,
  [in, out, optional] PVOID       pExtra,
  [out, optional]     PDNS_RECORD *ppQueryResults,
  [out, optional]     PVOID       *pReserved
);

Parámetros

[in] pszName

Puntero a una cadena que representa el nombre DNS que se va a consultar.

[in] wType

Valor que representa el tipo de registro DNS (RR)Registro de recursos que se consulta. wType determina el formato de los datos a los que apunta ppQueryResultsSet. Por ejemplo, si el valor de wType es DNS_TYPE_A, el formato de los datos a los que apunta ppQueryResultsSet es DNS_A_DATA.

[in] Options

Valor que contiene un mapa de bits de las opciones de consulta de DNS que se van a usar en la consulta DNS. Las opciones se pueden combinar y todas las opciones invalidan DNS_QUERY_STANDARD.

[in, out, optional] pExtra

Este parámetro está reservado para uso futuro y debe establecerse en NULL.

[out, optional] ppQueryResults

Opcional. Puntero a un puntero que apunta a la lista de RR que componen la respuesta. Para obtener más información, vea la sección Comentarios.

[out, optional] pReserved

Este parámetro está reservado para uso futuro y debe establecerse en NULL.

Valor devuelto

Devuelve la confirmación correcta tras la finalización correcta. De lo contrario, devuelve el código de error específico de DNS adecuado tal como se define en Winerror.h.

Comentarios

Las aplicaciones que llaman a la función DnsQuery crean una consulta mediante un nombre DNS completo y un tipo de registro de recursos (RR) y establecen opciones de consulta en función del tipo de servicio deseado. Cuando se establece la opción DNS_QUERY_STANDARD , DNS usa la memoria caché del solucionador, consulta primero con UDP, vuelve a intentarlo con TCP si se trunca la respuesta y solicita que el servidor realice una resolución recursiva en nombre del cliente para resolver la consulta.

Las aplicaciones deben liberar conjuntos rr devueltos con la función DnsRecordListFree .

Nota Al llamar a uno de los tipos de función DnsQuery , tenga en cuenta que un servidor DNS puede devolver varios registros en respuesta a una consulta. Un equipo que tiene un host múltiple, por ejemplo, recibirá varios registros A para la misma dirección IP. El autor de la llamada debe usar tantos de los registros devueltos como sea necesario.
 
Tenga en cuenta el siguiente escenario, en el que varios registros devueltos requieren actividad adicional en nombre de la aplicación: se realiza una llamada de función DnsQuery_A para un equipo de host múltiple y la aplicación encuentra que la dirección asociada al primer registro A no responde. A continuación, la aplicación debe intentar usar otras direcciones IP especificadas en los registros (adicionales) Devueltos desde la llamada de función de DnsQuery_A .

Si el parámetro lpstrName se establece en NULL, se produce un error en la función DnsQuery con el error INVALID_PARAMETER.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado windns.h
Library Dnsapi.lib
Archivo DLL Dnsapi.dll

Consulte también

DNS_RECORD

DnsQueryEx

DnsRecordListFree