Compartir a través de


Función HttpQueryRequestProperty

Proporciona a una aplicación acceso para encontrar información detallada sobre una solicitud. Principalmente las estadísticas de flujo de conexión, pero también la indicación de nombre de servidor (SNI), presenta el nombre de dominio de servidor solicitado por el cliente al servidor para que pueda seleccionar el certificado correcto, entre otros motivos) y otros rasgos de la conexión TLS subyacente (cuando corresponda).

La estructura de HTTP_REQUEST se rellena con la información que prácticamente todas las aplicaciones de servidor necesitarán para responder a una solicitud y HttpQueryRequestProperty es para obtener datos de diagnóstico útiles sobre una solicitud o información más detallada donde va a ser realmente necesario. La mayoría de las aplicaciones no se preocupan por el desglose preciso de los tiempos de las llamadas API, pero es posible que los equipos o aplicaciones muy grandes o muy grandes o controladas por el rendimiento quieran esos detalles para una mejor depuración. Pero tenga en cuenta que hay un costo asociado a la recopilación o recuperación de la mayoría de los datos cubiertos por HttpQueryRequestProperty.

Mientras que HttpSetRequestProperty funciona en solo dos valores en HTTP_REQUEST_PROPERTY, la función HttpQueryRequestProperty funciona en todos ellos.

Vea Comentarios para obtener información sobre cómo llamar a la función.

Sintaxis

HTTPAPI_LINKAGE ULONG WINAPI
HttpQueryRequestProperty(
  _In_ HANDLE RequestQueueHandle,
  _In_ HTTP_OPAQUE_ID Id,
  _In_ HTTP_REQUEST_PROPERTY PropertyId,
  _In_reads_bytes_opt_(QualifierSize) VOID *Qualifier,
  _In_ ULONG QualifierSize,
  _Out_writes_bytes_to_opt_(OutputBufferSize, *BytesReturned) PVOID Output,
  _In_ ULONG OutputBufferSize,
  _Out_opt_ PULONG BytesReturned,
  _In_opt_ LPOVERLAPPED Overlapped
);

Parámetros

RequestQueueHandle

Tipo: _In_ HANDLE

Identificador de la cola de solicitudes donde se recibió la solicitud consultada.

Id

Tipo: _In_ HTTP_OPAQUE_ID

Identificador opaco de la solicitud.

PropertyId

Tipo: _In_ HTTP_REQUEST_PROPERTY

Miembro de la enumeración HTTP_REQUEST_PROPERTY que describe el tipo de propiedad establecido. La enumeración incluye notas sobre las propiedades admitidas y cómo habilitarlas.

Qualifier

Tipo: _In_reads_bytes_opt_(QualifierSize) VOID *

Parámetro opcional necesario para algunos valores de PropertyId para identificar los límites de los datos que solicita. Para las opciones de estadísticas, se puede usar para definir la ventana de tiempo para buscar estadísticas de conexión.

QualifierSize

Tipo: _In_ ULONG

Tamaño de la estructura pasada en Calificador. Si Calificador es NULL, establezca este valor en 0.

Output

Tipo: _Out_writes_bytes_to_opt_(OutputBufferSize, *BytesReturned) PVOID

Recibe el contenido de la propiedad solicitada. Usted es responsable de asignar y liberar este búfer. Para muchas propiedades, se trata de un búfer de tamaño fijo en función de la propiedad solicitada. Consulte HTTP_REQUEST_PROPERTY para conocer los detalles de una propiedad determinada.

Cuando una propiedad devuelve un búfer de longitud variable, puede sondear el tamaño del búfer necesario dejando este parámetro NULLy pasando un puntero para BytesReturned. Para obtener más información, consulte HTTP_REQUEST_PROPERTY.

OutputBufferSize

Tipo: _In_ ULONG

Tamaño del búfer pasado en Salida o 0 si es NULL.

BytesReturned

Tipo: _Out_opt_ PULONG

Devuelve el número de bytes escritos en Output. O bien, para las propiedades de longitud variable, puede devolver el tamaño del búfer necesario si la salida no era lo suficientemente grande. En el caso de las propiedades de longitud variable, debe llamar primero con Output establecido en NULL para que pueda recuperar a través de BytesReturned el tamaño del búfer que necesita y, a continuación, asignar esa cantidad de memoria y, a continuación, reintentar la consulta.

Overlapped

Tipo: _In_opt_ LPOVERLAPPED

Aunque puede proporcionar una estructura SUPERPUESTA para la operación asincrónica, establecer este parámetro no es una garantía de que la API se ejecute de forma asincrónica; la mayoría de las operaciones de esta API siempre son sincrónicas. El evento de esta estructura solo se usa si la API devuelve ERROR_IO_PENDING.

Valor devuelto

Tipo: ULONG

Si la función se ejecuta correctamente, se ERROR_SUCCESS el valor devuelto. Si se proporciona una estructura SUPERPUESTA y la función se ejecuta de forma asincrónica, se devolverá ERROR_IO_PENDING y no es un error.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error:

Código de retorno Descripción
ERROR_INVALID_PARAMETER Uno o varios de los argumentos no son válidos.
ERROR_INVALID_FUNCTION La solicitud no admite la propiedad que ha consultado.
ERROR_MORE_DATA El tamaño del búfer de salida no es suficiente, asigne un búfer mayor para la siguiente solicitud.
Otros Comprobación de los códigos de error del sistema definidos en WinError.h

Observaciones

Esta función no tiene un archivo de encabezado o archivo de biblioteca asociado. La aplicación puede llamar a LoadLibrary con el nombre del archivo DLL (httpapi.dll) para obtener un identificador de módulo. A continuación, puede llamar a GetProcAddress con el identificador del módulo y el nombre de esta función para obtener la dirección de la función.

Requisitos

   
Cliente mínimo admitido Windows 10, versión 1709 [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows Server, versión 1709 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
Encabezado Ninguno
Biblioteca Ninguno
DLL de httpapi.dll

Consulte también