Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет приложению доступ к поиску сведений о запросе. В основном статистика потока подключения, но и указание имени сервера (SNI) представляет доменное имя сервера, запрашиваемое клиентом на сервер, чтобы он смог выбрать правильный сертификат, помимо других причин), и другие признаки базового TLS-подключения (при необходимости).
Структура HTTP_REQUEST заполняется информацией о том, что в значительной степени все серверные приложения потребуются для ответа на запрос, и HttpQueryRequestProperty — для получения полезных диагностических данных о запросе или более подробных сведений о том, где это действительно необходимо. Большинство приложений не обеспокоены точной разбивкой времени вызовов API, но очень большие или очень производительно управляемые приложениями или командами могут потребоваться эти сведения для более эффективной отладки. Но помните, что существует стоимость, связанная с сбором или получением большинства данных, охваченных HttpQueryRequestProperty.
В то время как HttpSetRequestProperty работает только на двух значениях в HTTP_REQUEST_PROPERTY, функция HttpQueryRequestProperty работает над всеми из них.
Дополнительные сведения о вызове функции см. в примечаниях .
Синтаксис
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
);
Параметры
RequestQueueHandle
Тип: _In_ HANDLE
Дескриптор очереди запросов, в которой был получен запрос.
Id
Тип: _In_ HTTP_OPAQUE_ID
Непрозрачный идентификатор запроса.
PropertyId
Тип: _In_ HTTP_REQUEST_PROPERTY
Элемент перечисления HTTP_REQUEST_PROPERTY , описывающий заданный тип свойства. Перечисление содержит заметки о поддерживаемых свойствах и их включении.
Qualifier
Тип: _In_reads_bytes_opt_(qualifierSize) VOID *
Необязательный параметр, необходимый для некоторых значений PropertyId , чтобы определить границы того, какие данные вы запрашиваете. Для параметров статистики можно использовать для определения периода времени для поиска статистики подключения.
QualifierSize
Тип: _In_ ULONG
Размер структуры, переданной в квалификаторе. Если квалификатор имеет значение , задайте для этого NULL
значение 0.
Output
Тип: _Out_writes_bytes_to_opt_(OutputBufferSize, *BytesReturned) PVOID
Получает содержимое запрошенного свойства. Вы несете ответственность за выделение и освобождение этого буфера. Для многих свойств это буфер фиксированного размера в зависимости от запрошенного свойства. Ознакомьтесь HTTP_REQUEST_PROPERTY с конкретными особенностями данного свойства.
Когда свойство возвращает буфер переменной длины, можно проверить размер буфера, необходимого, оставив этот параметр NULL
и передав указатель для BytesReturned. Дополнительные сведения см. в HTTP_REQUEST_PROPERTY.
OutputBufferSize
Тип: _In_ ULONG
Размер буфера, передаваемого в выходных данных, или 0, если значение NULL.
BytesReturned
Тип: _Out_opt_ PULONG
Возвращает количество байтов, записанных в выходные данные. Кроме того, для свойств переменной длины можно вернуть размер буфера, необходимый, если выходные данные не были достаточно большими. Для свойств переменной длины необходимо сначала вызвать выходной набор NULL
, чтобы получить с помощью BytesReturned нужный размер буфера, а затем выделить этот объем памяти, а затем повторить запрос.
Overlapped
Тип: _In_opt_ LPOVERLAPPED
Хотя вы можете предоставить структуру OVERLAPPED для асинхронной операции, установка этого параметра не гарантирует, что API будет выполняться асинхронно; Большинство операций с этим API всегда синхронны. Событие в этой структуре используется только в том случае, если API возвращает ERROR_IO_PENDING.
Возвращаемое значение
Тип: ULONG
Если функция выполнена успешно, возвращаемое значение ERROR_SUCCESS. Если предоставляется структура OVERLAPPED и функция выполняется асинхронно, то возвращается ERROR_IO_PENDING и не является ошибкой.
Если функция завершается ошибкой, возвращаемое значение является одним из следующих кодов ошибок:
Код возврата | Описание |
---|---|
ERROR_INVALID_PARAMETER | Один или несколько аргументов недопустимы. |
ERROR_INVALID_FUNCTION | Запрос не поддерживает запрошенное свойство. |
ERROR_MORE_DATA | Размер выходного буфера недостаточно, выделите больший буфер для следующего запроса. |
Другое | Проверьте коды системных ошибок , определенные в WinError.h |
Замечания
Эта функция не содержит связанного файла заголовка или файла библиотеки. Приложение может вызывать LoadLibrary с именем DLL (httpapi.dll
) для получения дескриптора модуля. Затем он может вызвать GetProcAddress с дескриптором модуля и именем этой функции, чтобы получить адрес функции.
Требования
Минимальный поддерживаемый клиент | Windows 10 версии 1709 [только классические приложения] |
Минимальный поддерживаемый сервер | Windows Server версии 1709 [только классические приложения] |
Целевая платформа | Виндоус |
Заголовок | Отсутствует |
Библиотека | Отсутствует |
Библиотека dll | httpapi.dll |