Флаги параметров
Следующие флаги параметров поддерживаются WinHttpQueryOption и WinHttpSetOption.
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS
Значение по умолчанию — FALSE. Если задано значение TRUE, WinHTTP не гарантирует ход выполнения, если обратные вызовы состояния блокируются клиентским приложением.
Клиентское приложение должно проявлять особую осторожность, чтобы выполнять минимальные операции в рамках обратного вызова без блокировки, возвращая как можно быстрее, и, в частности, не должно ждать каких-либо последующих вызовов WinHTTP. Если они не соответствуют этим рекомендациям, скорее всего, это негативно скажется на производительности или может зависнуть приложение. При использовании в установленном порядке этот параметр может повысить производительность.
WINHTTP_OPTION_AUTOLOGON_POLICY
Задает длинное целое число без знака, указывающее политику автоматического входа с одним из следующих значений.
Термин | Описание |
---|---|
WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH | Учетные данные по умолчанию не используются. Обратите внимание, что этот флаг вступает в силу, только если вы указываете сервер по фактическому имени компьютера. Он не вступит в силу, если указать сервер по "localhost" или IP-адресу. |
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW | Вход с проверкой подлинности с использованием учетных данных по умолчанию выполняется для всех запросов. |
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM | Вход с проверкой подлинности с использованием учетных данных по умолчанию выполняется только для запросов в локальной интрасети. |
WINHTTP_OPTION_BACKGROUND_CONNECTIONS
При установке этого параметра для дескриптора сеанса необходимо передать количество подключений, которые вы хотите открыть. Затем, после первой отправки запроса, вместо того чтобы открывать только одно подключение, WinHttp открывает несколько подключений в параллельном режиме. Это может повысить производительность последующих запросов к тому же назначению, что не приведет к дополнительным затратам на установление подключения.
WINHTTP_OPTION_CALLBACK
Извлекает указатель на набор функций обратного вызова с winHttpSetStatusCallback.
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
Задает контекст сертификата клиента. Если приложение получает ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED, оно должно вызвать WinHttpSetOption , чтобы предоставить сертификат, прежде чем повторить запрос. В рамках обработки этого параметра WinHttp вызывает CertDuplicateCertificateContext в контексте сертификата, предоставленном вызывающим объектом, чтобы контекст сертификата можно было независимо освободить.
Примечание
Приложение не должно пытаться закрыть хранилище сертификатов с флагом CERT_CLOSE_STORE_FORCE_FLAG в вызове CertCloseStore в хранилище сертификатов, из которого был получен контекст сертификата. Может произойти нарушение доступа.
Когда сервер запрашивает сертификат клиента, WinHttpSendRequest или WinHttpReceiveResponse возвращает ошибку ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED . Если сервер запрашивает сертификат, но не требует его, приложение может указать этот параметр, чтобы указать, что у него нет сертификата. Сервер может выбрать другую схему проверки подлинности или разрешить анонимный доступ к серверу. Приложение предоставляет макрос WINHTTP_NO_CLIENT_CERT_CONTEXT в параметре lpBufferwinHttpSetOption , как показано в следующем примере кода.
BOOL fRet = WinHttpSetOption(hRequest,
WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
WINHTTP_NO_CLIENT_CERT_CONTEXT,
0);
Если серверу требуется сертификат клиента, он может отправить в ответ код состояния HTTP 403. Дополнительные сведения см. в разделе параметр WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST .
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
Извлекает структуру SecPkgContext_IssuerListInfoEx , если ошибка из WinHttpSendRequest или WinHttpReceiveResponseERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED. Список издателей в структуре содержит список допустимых центров сертификации (ЦС) с сервера. Клиентское приложение может отфильтровать список ЦС, чтобы получить сертификат клиента для проверки подлинности SSL.
Кроме того, если сервер запрашивает сертификат клиента, но не требует его, приложение может вызвать WinHttpSetOption с параметром WINHTTP_OPTION_CLIENT_CERT_CONTEXT . Дополнительные сведения см. в разделе параметр WINHTTP_OPTION_CLIENT_CERT_CONTEXT .
WINHTTP_OPTION_CODEPAGE
Задает кодовую страницу , используемую для обработки URL-адреса (то есть строки запроса). По умолчанию используется значение UTF8.
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH
Задает длинное целое число без знака, указывающее, включена ли проверка подлинности passport в WinHTTP . Он может иметь одно из следующих значений:
Термин | Описание |
---|---|
WINHTTP_DISABLE_PASSPORT_AUTH | Проверка подлинности Microsoft Passport отключена. Это значение по умолчанию. |
WINHTTP_DISABLE_PASSPORT_KEYRING | Ключи passport отключены. Это значение по умолчанию. |
WINHTTP_ENABLE_PASSPORT_AUTH | Включена проверка подлинности по паспорту. |
WINHTTP_ENABLE_PASSPORT_KEYRING | Функция keyring passport включена. |
WINHTTP_OPTION_CONNECT_RETRIES
Задает или извлекает длинное целое число без знака, содержащее количество попыток подключенияWinHTTP к узлу. Http Services Microsoft Windows (WinHTTP) выполняет попытки только один раз для каждого IP-адреса. Например, если вы пытаетесь подключиться к узлу с несколькими адресами с 10 IP-адресами и WINHTTP_OPTION_CONNECT_RETRIES имеет значение 7, WinHTTP попытается подключиться только к первым семи IP-адресам. При том же наборе из 10 IP-адресов, если WINHTTP_OPTION_CONNECT_RETRIES имеет значение 20, WinHTTP пытается каждый из 10 только один раз. Если попытка подключения по-прежнему завершается сбоем после указанного количества попыток или время ожидания подключения истекло до этого времени, запрос отменяется. Значение по умолчанию для WINHTTP_OPTION_CONNECT_RETRIES — пять попыток.
WINHTTP_OPTION_CONNECT_TIMEOUT
Задает или извлекает длинное целое число без знака, содержащее значение времени ожидания в миллисекундах. Если задать для этого параметра значение infinite (0xFFFFFFFF), этот таймер будет отключен.
Если запрос tcp-подключения занимает больше времени, чем это значение времени ожидания, запрос отменяется. Время ожидания по умолчанию составляет 60 секунд. При попытке подключения к нескольким IP-адресам для одного узла (многосетвого узла) ограничение времени ожидания для каждого отдельного подключения.
WINHTTP_OPTION_CONNECTION_INFO
Извлекает исходный и целевой IP-адрес, а также порт запроса, который создал ответ при возврате WinHttpReceiveResponse . Приложение вызывает WinHttpQueryOption с параметром WINHTTP_OPTION_CONNECTION_INFO и предоставляет структуру WINHTTP_CONNECTION_INFO в параметре lpBuffer . Дополнительные сведения см. в разделе WINHTTP_CONNECTION_INFO.
Применимо к: Windows XP с пакетом обновления 2 (SP2) и более поздних версий; Windows 2003 с пакетом обновления 1 (SP1) и более поздних версий.
WINHTTP_OPTION_CONNECTION_GUID
Пометьте подключение, связанное с дескриптором запроса WinHTTP, с помощью GUID. Это позволяет пользовательский контроль над тем, какие запросы используют группы соединений с параметром WINHTTP_OPTION_MATCH_CONNECTION_GUID .
WINHTTP_OPTION_CONNECTION_STATS_V0
Возвращает структуру TCP_INFO_v0 для базового подключения, используемого запросом. Возвращаемая структура может содержать статистику из предыдущих запросов, отправленных через то же подключение.
Примечание
Этот параметр заменен WINHTTP_OPTION_CONNECTION_STATS_V1.
WINHTTP_OPTION_CONNECTION_STATS_V1
Возвращает структуру TCP_INFO_v1 для базового подключения, используемого запросом. Возвращаемая структура может содержать статистику из предыдущих запросов, отправленных через то же подключение.
WINHTTP_OPTION_CONTEXT_VALUE
Задает или извлекает DWORD_PTR , содержащий указатель на значение контекста, связанное с этим дескриптором HINTERNET . Используется значение, хранящееся в буфере, и флагу параметра WINHTTP_OPTION_CONTEXT_VALUE присваивается новое значение.
WINHTTP_OPTION_DECOMPRESSION
Задает DWORD флагов, определяющих, будет ли WinHTTP автоматически распаковывать тела ответов сжатыми кодированием содержимого. WinHTTP также установит соответствующий заголовок Accept-Encoding, переопределяя все, предоставленные вызывающим элементом. Поддерживаются значения:
Термин | Описание |
---|---|
WINHTTP_DECOMPRESSION_FLAG_GZIP | Распаковка кодирования содержимого: ответы gzip. |
WINHTTP_DECOMPRESSION_FLAG_DEFLATE | Распаковка кодирования содержимого: отмена ответов. |
WINHTTP_DECOMPRESSION_FLAG_ALL | Распаковка ответов с любым поддерживаемым кодированием содержимого. |
По умолчанию WinHTTP будет доставлять сжатые ответы вызывающей объекту без изменений.
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING
Установка этого параметра для дескриптора сеанса WinHttp позволяет включать и отключать создание цепочки сертификатов сервера.
WINHTTP_OPTION_DISABLE_FEATURE
Задает длинное целое число без знака, указывающее, какие функции отключены с помощью одного или нескольких следующих флагов. Имейте в виду, что эта функция должна передаваться в WinHttpSetOption только для дескрипторов запросов после создания дескриптора запроса с помощью WinHttpOpenRequest и перед отправкой запроса с помощью WinHttpSendRequest.
Термин | Описание |
---|---|
WINHTTP_DISABLE_AUTHENTICATION | Автоматическая проверка подлинности отключена. |
WINHTTP_DISABLE_COOKIES | Автоматическое добавление заголовков файлов cookie в запросы отключено. Кроме того, возвращенные файлы cookie не добавляются автоматически в базу данных файлов cookie. Отключение файлов cookie может привести к снижению производительности проверки подлинности Passport. |
WINHTTP_DISABLE_KEEP_ALIVE | Отключает семантику поддержания активности для соединения. Семантика поддержания активности необходима для проверки подлинности MSN, NTLM и других типов проверки подлинности. |
WINHTTP_DISABLE_REDIRECTS | Автоматическое перенаправление отключено при отправке запросов с помощью WinHttpSendRequest. Если автоматическое перенаправление отключено, приложение должно зарегистрировать функцию обратного вызова для успешной проверки подлинности Passport. |
WINHTTP_OPTION_DISABLE_GLOBAL_POOLING
Отключает глобальные межсеансовые пулы. Это рекомендуемая практика, так как глобальный межсеансовый пул — это устаревшее поведение, которое поддерживается по умолчанию для обеспечения совместимости. На это влияет последующее задание максимального количества подключений вручную.
WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES
Отключает одну или несколько следующих методик проверки подлинности прокси-сервера в сеансе WinHTTP, предоставляя OR
все применимые варианты. Это все схемы, за исключением WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE, которые принудительно используют учетную запись локального компьютера при отправке запросов на замыкания на себя или локальный адрес. Это предотвращает утечку системных учетных данных в локальные прокси-серверы HTTP.
Термин | Описание |
---|---|
WINHTTP_PROXY_DISABLE_SCHEME_BASIC | Отключает обычную схему проверки подлинности. |
WINHTTP_PROXY_DISABLE_SCHEME_DIGEST | Отключает схему дайджест-проверки подлинности. |
WINHTTP_PROXY_DISABLE_SCHEME_NTLM | Отключает схему проверки подлинности NTLM. |
WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS | Отключает схему проверки подлинности Kerberos. |
WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE | Отключает схему проверки подлинности Negotiate. |
WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE | Принудительно использует учетную запись локального компьютера при отправке запросов на замыкания на себя или локальный адрес. |
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
Запрещает WinHTTP повторить подключение с более ранней версией протокола безопасности при сбое первоначального согласования протокола.
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
Позволяет новым запросам открывать дополнительное подключение HTTP/2 при достижении максимального количества одновременных потоков, а не ожидать следующего доступного потока для существующего подключения.
WINHTTP_OPTION_ENABLE_FEATURE
Задает длинное целочисленное значение без знака, указывающее включенные в данный момент функции. Может иметь одно из следующих значений.
Термин | Описание |
---|---|
WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION | Если этот параметр включен, WinHTTP временно отменяет олицетворение клиента на время операций проверки подлинности SSL-сертификата. Это значение можно задать только для дескриптора сеанса. |
WINHTTP_ENABLE_SSL_REVOCATION | Если этот параметр включен, WinHTTP разрешает отзыв SSL. Это значение можно задать только для дескриптора запроса. |
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
Задает битовую маску DWORD допустимых расширенных версий HTTP. Возможны следующие значения:
Термин | Описание |
---|---|
WINHTTP_PROTOCOL_FLAG_HTTP2 (0x1) | Включает HTTP/2 для запроса. |
WINHTTP_PROTOCOL_FLAG_HTTP3 (0x2) | Включает HTTP/3 для запроса. |
Нет (0x0) | Ограничивает запрос http/1.1 и более предыдущими версиями. |
Устаревшие версии HTTP (1.1 и более ранние версии) нельзя отключить с помощью этого параметра. Значение по умолчанию — 0x0.
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT
Этот параметр можно задать для дескриптора сеанса WinHttp, чтобы разрешить WinHttp использовать предоставленный вызывающим объектом контекст сертификата клиента при использовании HTTP/2.
WINHTTP_OPTION_ENABLETRACING
Задает значение BOOL , указывающее, включена ли трассировка в данный момент. Этот параметр можно задать только для дескриптора NULLHINTERNET . См. также раздел Сбор трассировок WinHTTP.
WINHTTP_OPTION_ENCODE_EXTRA
Включает кодирование процента URL-адресов для пути и строки запроса.
Кроме того, можно закодировать процент перед вызовом WinHttp.
WINHTTP_OPTION_EXPIRE_CONNECTION
Этот параметр можно задать только для дескриптора запроса, который по-прежнему активен (отправляющий или принимающий). Установка этого параметра позволит WinHttp прекратить обслуживание запросов на соединение, связанное с переданным дескриптором запроса. Соединение будет закрыто после завершения дескриптора запроса, вызываемого с помощью этого параметра. Этот параметр не принимает никаких параметров.
WINHTTP_OPTION_EXTENDED_ERROR
Извлекает длинное целочисленное значение без знака, содержащее код ошибки Microsoft Windows Sockets, сопоставленный с сообщениями об ошибках ERROR_WINHTTP_*, которые в последний раз возвращались в этом контексте потока. В качестве значения дескриптора можно передать null .
WINHTTP_OPTION_FEATURE_SUPPORTED
Проверьте, поддерживается ли указанный флаг параметра этой версией WinHTTP.
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
По умолчанию, когда WinHttp отправляет запрос, если нет доступных подключений для обслуживания запроса, WinHttp попытается установить новое подключение, и запрос будет привязан к этому новому подключению. При установке этого параметра такой запрос будет обслуживаться при первом подключении, которое становится доступным, и не обязательно устанавливается.
WINHTTP_OPTION_GLOBAL_PROXY_CREDS
Принимает указатель на структуру WINHTTP_CREDS_EX с параметром функции hInternet , имеющим значение NULL. Для этого параметра требуется раздел реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Если этот раздел реестра не задан, WinHTTP вернет ошибку ERROR_WINHTTP_INVALID_OPTION. Этот раздел реестра отсутствует по умолчанию. Если он задан, WinINet отправит учетные данные в WinHTTP. Всякий раз, когда WinHttp получает запрос проверки подлинности, и если учетные данные не заданы для текущего дескриптора, он будет использовать учетные данные, предоставленные WinINet. Чтобы совместно использовать учетные данные сервера в дополнение к учетным данным прокси-сервера, пользователям необходимо задать WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .
WINHTTP_OPTION_GLOBAL_SERVER_CREDS
Принимает указатель на структуру WINHTTP_CREDS_EX с параметром функции hInternet , имеющим значение NULL. Для этого параметра требуется раздел реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Если этот раздел реестра не задан, WinHTTP вернет ошибку ERROR_WINHTTP_INVALID_OPTION. Этот раздел реестра отсутствует по умолчанию. Если он задан, WinINet отправит учетные данные в WinHTTP. Всякий раз, когда WinHttp получает запрос проверки подлинности, и если учетные данные не заданы для текущего дескриптора, он будет использовать учетные данные, предоставленные WinINet. Чтобы совместно использовать учетные данные сервера в дополнение к учетным данным прокси-сервера, пользователям необходимо задать WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .
WINHTTP_OPTION_HANDLE_TYPE
Извлекает длинное целочисленное значение без знака, содержащее тип переданного дескриптора HINTERNET . Может возвращаться одно из следующих значений:
Термин | Описание |
---|---|
WINHTTP_HANDLE_TYPE_CONNECT | Дескриптор является дескриптором подключения. |
WINHTTP_HANDLE_TYPE_REQUEST | Дескриптор — это дескриптор запроса. |
WINHTTP_HANDLE_TYPE_SESSION | Дескриптор является дескриптором сеанса. |
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED
Запрещает использование для запроса версий протоколов, отличных от версий, включенных WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL .
WINHTTP_OPTION_HTTP_PROTOCOL_USED
Возвращает значение DWORD, указывающее, какая расширенная версия HTTP использовалась в данном запросе. Список возможных значений см. в разделе WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL.
WINHTTP_OPTION_HTTP_VERSION
Задает или извлекает структуру HTTP_VERSION_INFO , содержащую поддерживаемую версию HTTP. Это вариант для всего процесса; используйте значение NULL для дескриптора.
WINHTTP_OPTION_HTTP2_KEEPALIVE
Этот параметр можно задать для дескриптора сеанса, чтобы WinHttp использовал кадры PING HTTP/2 в качестве механизма сохранения. Вызывающие абоненты указывают время ожидания в миллисекундах, и после отсутствия активности подключения в течение этого периода времени ожидания WinHttp начнет отправлять кадры PING HTTP/2. Вызывающие абоненты не могут задать значение времени ожидания менее 5000 миллисекундах.
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
Этот параметр можно задать для дескриптора запроса WinHttp, чтобы управлять поведением WinHttp, если ответ HTTP/2 содержит заголовок "Transfer-Encoding". В этом случае WinHttp возвращает ошибку, если этот параметр имеет значение FALSE.
WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW
Задайте исходный размер окна получения потока HTTP/2 и пороговое значение для отправки обновлений окна с помощью структуры WINHTTP_HTTP2_RECEIVE_WINDOW .
WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT
Использует буфер, чтобы задать время ожидания подтверждения HTTP/3 в миллисекундах в качестве PDWORD.
WINHTTP_OPTION_HTTP3_INITIAL_RTT
Настраивает начальный RTT в миллисекундах, используемых msquic.
WINHTTP_OPTION_HTTP3_KEEPALIVE
Включает семантику поддержания активности для соединения. Использует буфер, чтобы задать время ожидания поддержания активности в миллисекундах в качестве PDWORD.
WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE
Извлекает предоставленную сервером ошибку в потоке HTTP/3, используемом для отправки запроса.
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
Позволяет безопасным подключениям использовать сертификаты безопасности, для которых не удалось скачать список отзыва сертификатов.
WINHTTP_OPTION_IPV6_FAST_FALLBACK
Включает быстрый резервный вариант IPv6 (Happier Eyeballs) для подключения. Это поведение похоже на поведение Happy Eyeballs, описанное в RFC 6555 для улучшения времени подключения в сетях, где IPv6 ненадежный.
- Если адреса IPv6 и IPv4 разрешены для данного узла, WinHttp начнет с подключения к первому разрешенным IPv6-адресу с коротким временем ожидания (300 мс).
- В случае сбоя подключения WinHttp попытается подключиться к первому разрешенным IPv4-адресу со стандартным временем ожидания.
- В случае сбоя второго подключения WinHttp повторит первый разрешенный IPv6-адрес со стандартным временем ожидания.
- В случае сбоя третьего подключения WinHttp будет отменить изменения к поведению по умолчанию для всех оставшихся адресов, пытаясь подключиться к каждому из них со стандартным временем ожидания, пока не будет установлено подключение или адреса не останутся.
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE
Возвращает значение, указывающее, можно ли получить ответ прокси-сервера Return Connect.
WINHTTP_OPTION_MATCH_CONNECTION_GUID
Принимает структуру WINHTTP_MATCH_CONNECTION_GUID , чтобы сообщить WinHTTP об обслужить запрос для соответствующего подключения. Если задано WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRED , можно использовать только подключения с соответствующим ИДЕНТИФИКАТОРом GUID. В противном случае можно использовать подключения с соответствующими идентификаторами GUID и подключения, которые не помечены каким-либо ИДЕНТИФИКАТОРом GUID.
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER
Задает или извлекает длинное целое число без знака, содержащее максимальное количество подключений, разрешенных для каждого сервера HTTP/1.0. Значение по умолчанию — INFINITE.
Применимо к: Windows Vista с пакетом обновления 1 (SP1) и более поздних версий; Windows Server 2008 и более поздних версий.
WINHTTP_OPTION_MAX_CONNS_PER_SERVER
Задает или извлекает длинное целое число без знака, содержащее максимальное количество подключений, разрешенных для каждого сервера. Значение по умолчанию — INFINITE.
Если этот параметр равен нулю, WinHTTP устанавливает ограничение на количество подключений равным 2.
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS
Задает максимальное количество перенаправлений, за которыми следует WinHTTP; значение по умолчанию — 10. Это ограничение не позволяет несанкционированным сайтам приостановить работу клиента WinHTTP после большого количества перенаправлений.
Применимо к: Windows XP с пакетом обновления 1 (SP1) и более поздних версий; Windows 2000 с пакетом обновления 3 (SP3) и более поздних версий.
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE
Максимальное число информационных ответов кода состояния 100–199, пропущенных перед возвратом окончательного кода состояния клиенту WinHTTP. Информационные коды состояния 100–199 могут быть отправлены сервером перед окончательным кодом состояния и описаны в спецификации для HTTP/1.1 (дополнительные сведения см. в разделе RFC 2616). Значение по умолчанию равно 10.
Применимо к: Windows XP с пакетом обновления 1 (SP1) и более поздних версий; Windows 2000 с пакетом обновления 3 (SP3) и более поздних версий.
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE
Значение , привязанное к объему данных, осушенных из ответов для повторного использования соединения, указанного в байтах. Значение по умолчанию — 1 МБ.
Применимо к: Windows XP с пакетом обновления 1 (SP1) и более поздних версий; Windows 2000 с пакетом обновления 3 (SP3) и более поздних версий.
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE
Привязанное значение для максимального размера части заголовка ответа сервера, указанного в байтах. Эта привязка защищает клиента от несанкционированного сервера, пытающегося остановить клиента, отправляя ответ с бесконечным объемом данных заголовка. Значение по умолчанию — 64 КБ.
Применимо к: Windows XP с пакетом обновления 1 (SP1) и более поздних версий; Windows 2000 с пакетом обновления 3 (SP3) и более поздних версий.
WINHTTP_OPTION_PARENT_HANDLE
Извлекает родительский дескриптор для этого дескриптора.
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT
Извлекает строку, содержащую текст cobranding , предоставленный сервером входа Passport. Этот параметр следует получить сразу после ответа сервера входа в систему с кодом состояния 401. Приложение должно передавать буфер в байтах, который достаточно велик для хранения возвращаемой строки.
WINHTTP_OPTION_PASSPORT_COBRANDING_URL
Извлекает строку, содержащую URL-адрес для графического кобрендинга , предоставленного сервером входа в Passport. Этот параметр следует получить сразу после ответа сервера входа с кодом состояния 401. Приложение должно передавать буфер в байтах, который достаточно велик для хранения возвращаемой строки.
WINHTTP_OPTION_PASSPORT_RETURN_URL
Задает параметр только для чтения для дескриптора запроса, который получает URL-адрес возврата Passport.
WINHTTP_OPTION_PASSPORT_SIGN_OUT
Задает параметр для дескриптора сеанса для выхода из любых имен входа Passport. Приложение должно передать ВОЗВРАЩАемый URL-адрес Passport, полученный с помощью WINHTTP_OPTION_PASSPORT_RETURN_URL. Все файлы cookie, связанные с URL-адресом возврата, очищаются.
WINHTTP_OPTION_PASSWORD
Задает или извлекает строковое значение, содержащее пароль, связанный с дескриптором запроса.
WINHTTP_OPTION_PROXY
Задает или извлекает структуру WINHTTP_PROXY_INFO , которая содержит данные прокси-сервера для существующего дескриптора сеанса или дескриптора запроса. При получении данных прокси-сервера приложение должно освободить строки lpszProxy и lpszProxyBypass , содержащиеся в этой структуре (если они не имеют значение NULL), с помощью функции GlobalFree . Приложение может запрашивать данные глобального прокси-сервера (прокси-сервер по умолчанию), передав дескриптор NULL .
WINHTTP_OPTION_PROXY_PASSWORD
Задает или получает строковое значение, содержащее пароль, используемый для доступа к прокси-серверу.
WINHTTP_OPTION_PROXY_SPN_USED
Возвращает имя участника прокси-сервера, которое WinHTTP предоставил SSPI во время проверки подлинности. Это строковое значение используется для передачи в SspiPromptForCredentials после сбоя проверки подлинности.
WINHTTP_OPTION_PROXY_USERNAME
Задает или извлекает строковое значение, содержащее имя пользователя, используемое для доступа к прокси-серверу.
WINHTTP_OPTION_QUIC_STATS
Извлекает структуру QUIC_STATISTICS , содержащую сведения о подключении, такие как RTT и отправленные и полученные байты.
WINHTTP_OPTION_READ_BUFFER_SIZE
Этот параметр является нерекомендуемой; она не оказывает никакого влияния.
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE
Задает возможность извлечения сущности ответа прокси-сервера. Этот параметр по умолчанию отключен.
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT
Задает или извлекает длинное целочисленное значение без знака, содержащее значение времени ожидания (в миллисекундах) для ожидания получения всех заголовков ответа на запрос. Если WinHTTP не получает все заголовки в течение этого периода ожидания, запрос отменяется. Значение времени ожидания по умолчанию — 90 секунд.
Это время ожидания проверяется только при получении данных из сокета. В результате по истечении времени ожидания клиентское приложение не получает уведомления до получения дополнительных данных с сервера. Если данные не поступают с сервера, задержка между истечением времени ожидания и уведомлением клиентского приложения может быть равной значению времени ожидания, заданному с помощью параметра dwReceiveTimeout функции WinHttpSetTimeouts .
WINHTTP_OPTION_RECEIVE_TIMEOUT
Задает или извлекает длинное целочисленное значение без знака, содержащее значение времени ожидания в миллисекундах, чтобы получить частичный ответ на запрос или прочитать некоторые данные. Если ответ занимает больше времени ожидания, запрос отменяется. По умолчанию время ожидания составляет 30 секунд.
WINHTTP_OPTION_REDIRECT_POLICY
Задает поведение WinHTTP в отношении обработки 30-кратного кода состояния перенаправления HTTP. Этот параметр можно задать для сеанса или дескриптора запроса одно из следующих значений:
Термин | Описание |
---|---|
WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS | Все перенаправления отслеживаются автоматически. |
WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP | Выполняются все перенаправления, за исключением тех, которые исходят из безопасного URL-адреса (https) на небезопасный URL-адрес (HTTP). Это параметр по умолчанию. |
WINHTTP_OPTION_REDIRECT_POLICY_NEVER | Перенаправления никогда не отслеживаются. 30-кратное состояние возвращается приложению. |
WINHTTP_OPTION_REJECT_USERPWD_IN_URL
Отклоняет URL-адреса, содержащие имя пользователя и пароль. Этот параметр также отклоняет URL-адреса, содержащие семантику username:password , даже если имя пользователя или пароль не указаны. Например, "u:p@hostname", ":@hostname", "u:@hostname" и ":p@hostname" будут помечены как недопустимые. Если в функцию передается недопустимый URL-адрес, она возвращает ERROR_WINHTTP_INVALID_URL. По умолчанию этот параметр выключен.
WINHTTP_OPTION_REQUEST_ANNOTATION
Включает получение и задание заметки запроса для предоставленного имени заметки. Это позволяет вызывающему объекту прикрепить строку к запросу для последующего получения, чтобы идентифицировать запросы с помощью любой пользовательской логики, которую вызывающий объект считает полезным.
WINHTTP_OPTION_REQUEST_PRIORITY
Этот параметр является нерекомендуемой; она не оказывает никакого влияния.
WINHTTP_OPTION_REQUEST_STATS
Возвращает статистику для запроса. Список доступных статистических данных см . в разделе WINHTTP_REQUEST_STATS.
WINHTTP_OPTION_REQUEST_TIMES
Возвращает сведения о времени для запроса. Список доступных временных интервалов см. в разделе WINHTTP_REQUEST_TIMES.
WINHTTP_OPTION_REQUIRE_STREAM_END
Этот параметр предписывает WinHttp игнорировать заголовки ответа Content-Length и продолжать получать данные в потоке, пока не будет получен флаг END_STREAM.
WINHTTP_OPTION_RESOLUTION_HOSTNAME
Этот параметр можно задать для дескриптора запроса WinHttp до его отправки. Если этот параметр задан, WinHttp будет использовать строку, предоставленную вызывающим абонентом, в качестве имени узла для разрешения DNS.
WINHTTP_OPTION_RESOLVE_TIMEOUT
Задает или извлекает длинное целочисленное значение без знака, содержащее значение времени ожидания в миллисекундах для разрешения имени узла. Значение времени ожидания по умолчанию — INFINITE. Если указано значение, отличное от используемого по умолчанию, для каждого разрешения имен создается один поток.
WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT
Отменяет любое олицетворение потока при построении цепочки сертификатов сервера, заставляя вместо этого использовать маркер процесса.
WINHTTP_OPTION_SECURE_PROTOCOLS
Задает длинное целое число без знака, указывающее, какие безопасные протоколы являются допустимыми.
- Windows 11, Windows 10 и Windows 8.1. По умолчанию включены только ПРОТОКОЛы SSL3, TLS1.0, TLS1.1 и TLS1.2.
- Windows 8 и Windows 7. По умолчанию включены только ПРОТОКОЛы SSL3 и TLS1.
Значение может быть сочетанием одного или нескольких из следующих значений.
Термин | Описание |
---|---|
WINHTTP_FLAG_SECURE_PROTOCOL_ALL | Можно использовать протоколы SSL 2.0, SSL 3.0 и TLS 1.0. |
WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | Можно использовать протокол SSL 2.0. |
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | Можно использовать протокол SSL 3.0. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 | Можно использовать протокол TLS 1.0. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 | Можно использовать протокол TLS 1.1. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 | Можно использовать протокол TLS 1.2. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 | Можно использовать протокол TLS 1.3. |
Если необходимо добавить поддержку протоколов TLS 1.1 или TLS 1.2, но вы не можете перекомпилировать приложение для использования соответствующих значений WINHTTP_OPTION_SECURE_PROTOCOLS, можно добавить DefaultSecureProtocols
запись реестра. Эта запись реестра позволяет указать, какие протоколы SSL следует использовать при использовании флага WINHTTP_OPTION_SECURE_PROTOCOLS .
Важно!
Приведенные ниже инструкции включают изменение реестра. При неправильном изменении реестра могут возникнуть серьезные проблемы. Поэтому внимательно следуйте этим инструкциям. Для дополнительной защиты заархивируйте реестр перед внесением изменений. Это позволит восстановить реестр, если возникнут проблемы. Дополнительные сведения о резервном копировании и восстановлении реестра см. в статье Резервное копирование и восстановление реестра в Windows.
Когда приложение указывает WINHTTP_OPTION_SECURE_PROTOCOLS, система проверяет DefaultSecureProtocols
запись реестра и, если она присутствует, переопределяет протоколы по умолчанию, указанные в WINHTTP_OPTION_SECURE_PROTOCOLS , протоколами, указанными в DefaultSecureProtocols
записи реестра. Если запись реестра отсутствует, WinHTTP использует существующие значения операционной системы по умолчанию для WINHTTP_OPTION_SECURE_PROTOCOLS. Эти значения по умолчанию WinHTTP соответствуют существующим правилам приоритета и отменяются протоколами, отключенными Secure Channel (Schannel), и протоколами, установленными для каждого приложения с помощью WinHttpSetOption.
Вы можете добавить DefaultSecureProtocols
запись реестра по следующему пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
На 64-разрядных компьютерах необходимо также добавить DefaultSecureProtocols
в Wow6432Node
путь:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
Значение реестра представляет собой растровое изображение DWORD. Используемое значение определяется путем добавления значений, соответствующих требуемым протоколам.
Значение DefaultSecureProtocols | Протокол включен |
---|---|
0x00000008 | Включение SSL 2.0 по умолчанию |
0x00000020 | Включение SSL 3.0 по умолчанию |
0x00000080 | Включение TLS 1.0 по умолчанию |
0x00000200 | Включение TLS 1.1 по умолчанию |
0x00000800 | Включение TLS 1.2 по умолчанию |
Например, если вы хотите переопределить значения по умолчанию для WINHTTP_OPTION_SECURE_PROTOCOLS укажите TLS 1.1 и TLS 1.2. В этом случае возьмем значения tls 1.1 (0x00000200) и TLS 1.2 (0x00000800), сбавьте их в калькулятор (в режиме программиста), и полученное значение реестра будет 0x00000A00.
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT
Извлекает сертификат для сервера SSL/TLS в структуру WINHTTP_CERTIFICATE_INFO . Приложение должно освободить члены lpszSubjectInfo и lpszIssuerInfo с помощью LocalFree.
WINHTTP_OPTION_SECURITY_FLAGS
Задает или извлекает длинное целое число без знака, содержащее флаги безопасности для дескриптора. Это может быть сочетание следующих значений:
Термин | Описание |
---|---|
SECURITY_FLAG_IGNORE_CERT_CN_INVALID | Разрешает недопустимое общее имя в сертификате; то есть имя сервера, указанное приложением, не соответствует общему имени в сертификате. Если этот флаг установлен, приложение не получает обратный вызов WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID . |
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | Разрешает недопустимую дату сертификата, т. е. сертификат с истекшим сроком действия или еще недействителен. Если этот флаг установлен, приложение не получает обратный вызов WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID . |
SECURITY_FLAG_IGNORE_UNKNOWN_CA | Разрешает недопустимый центр сертификации. Если этот флаг установлен, приложение не получает обратный вызов WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA . |
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE | Позволяет установить удостоверение сервера с помощью сертификата, отличного от сервера (например, сертификата клиента). |
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE | Позволяет игнорировать слабую сигнатуру. Этот флаг доступен в накопительном обновлении для каждой ОС, начиная с Windows 7 и Windows Server 2008 R2. |
SECURITY_FLAG_SECURE | Использует безопасную передачу данных. Это возвращается только в вызове WinHttpQueryOption. |
SECURITY_FLAG_STRENGTH_MEDIUM | Использует среднее (56-разрядное) шифрование. Это возвращается только в вызове WinHttpQueryOption. |
SECURITY_FLAG_STRENGTH_STRONG | Использует строгое (128-разрядное) шифрование. Это возвращается только в вызове WinHttpQueryOption. |
SECURITY_FLAG_STRENGTH_WEAK | Использует слабое (40-разрядное) шифрование. Это возвращается только в вызове WinHttpQueryOption. |
WINHTTP_OPTION_SECURITY_INFO
Возвращает сведения о подключении SChannel и шифре для запроса.
WINHTTP_OPTION_SECURITY_KEY_BITNESS
Извлекает целочисленное целочисленное значение без знака, содержащее надежность шифра ключа шифрования. Большее число указывает на более надежное шифрование шифра.
WINHTTP_OPTION_SEND_TIMEOUT
Задает или извлекает длинное целочисленное значение без знака, содержащее значение времени ожидания в миллисекундах для отправки запроса или записи некоторых данных. Если отправка запроса занимает больше времени ожидания, операция отправки отменяется. По умолчанию время ожидания составляет 30 секунд.
WINHTTP_OPTION_SERVER_CBT
Возвращает указатель на SecPkgContext_Bindings структуру, указывающую токен привязки канала (CBT).
Маркер привязки канала — это свойство защищенного транспортного канала, которое используется для привязки канала проверки подлинности к защищенному транспортному каналу. Этот маркер можно получить с помощью этого параметра только после установки SSL-подключения.
Примечание
Передача этого параметра и значения NULL для lpBuffer в WinHttpQueryOption вернет ERROR_INSUFFICIENT_BUFFER и требуемый размер байтов для буфера в параметре lpdwBufferLength . Это возвращаемое значение размера буфера можно передать в последующем вызове для запроса маркера привязки канала. Эти действия необходимы при обработке WINHTTP_CALLBACK_STATUS_REQUEST, если вы хотите изменить заголовки запросов на основе маркера привязки канала. Обратите внимание, что Windows XP и Vista не поддерживают изменение заголовков запросов во время этого обратного вызова.
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT
Извлекает контекст цепочки сертификации сервера. WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT можно передать, чтобы получить дублированный указатель на CERT_CHAIN_CONTEXT для цепочки сертификатов сервера, полученной во время согласованного SSL-соединения. Клиент должен вызвать CertFreeCertificateContext для возвращенного указателя PCCERT_CONTEXT, который заполняется буфером.
WINHTTP_OPTION_SERVER_CERT_CONTEXT
Извлекает контекст сертификации сервера. WINHTTP_OPTION_SERVER_CERT_CONTEXT можно передать, чтобы получить дублированный указатель на CERT CONTEXT для сертификата сервера, полученного во время согласованного SSL-соединения. Клиент должен вызвать CertFreeCertificateContext для возвращенного указателя PCCERT_CONTEXT, который заполняется буфером.
WINHTTP_OPTION_SERVER_SPN_USED
Возвращает имя субъекта-сервера сервера, предоставленное WinHTTP для SSPI во время проверки подлинности. Это строковое значение можно передать в SspiPromptForCredentials после сбоя проверки подлинности.
WINHTTP_OPTION_SPN
Включает или удаляет номер порта сервера при создании имени субъекта-службы (имя субъекта-службы) для проверки подлинности Kerberos или согласования kerberos. Этот флаг является одним из следующих значений:
Термин | Описание |
---|---|
WINHTTP_DISABLE_SPN_SERVER_PORT | Удаляет номер порта сервера. |
WINHTTP_ENABLE_SPN_SERVER_PORT | Включает номер порта сервера. |
WINHTTP_OPTION_STREAM_ERROR_CODE
Этот параметр можно запросить с помощью дескриптора запроса WinHttp и возвратить код ошибки, указанный кадром RST_STREAM, полученным в потоке HTTP.
WINHTTP_OPTION_TCP_FAST_OPEN
Включает tcp Fast Open для подключения.
WINHTTP_OPTION_TCP_KEEPALIVE
Этот параметр можно задать для дескриптора сеанса WinHttp, чтобы включить режим активности TCP в базовом сокете. Принимает структуру tcp_keepalive .
WINHTTP_OPTION_TLS_FALSE_START
Включает tls False Start для подключения.
WINHTTP_OPTION_TCP_PRIORITY_STATUS
Запросите заданный приоритет сокета TCP с помощью WINHTTP_OPTION_TCP_PRIORITY_HINT. Дополнительные сведения см. в документации по SIO_SET_PRIORITY_HINT .
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
Этот параметр можно задать для дескриптора сеанса WinHttp, чтобы указать, разрешен ли откат к TLS 1.0 при сбое подтверждения TLS с более новой версией протокола.
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
Принимает событие, которое будет задано после завершения последнего обратного вызова для определенного сеанса. Этот флаг должен использоваться в дескрипторове сеанса. Событие не может быть закрыто до тех пор, пока оно не будет задано WinHTTP.
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
Этот параметр зарезервирован для внутреннего использования и не должен вызываться.
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
Указывает стеку запустить процесс подтверждения WebSocket с помощью WinHttpSendRequest. Этот параметр не принимает никаких параметров.
WINHTTP_OPTION_URL
Извлекает строковое значение, содержащее полный URL-адрес скачаемого ресурса. Если исходный URL-адрес содержал какие-либо дополнительные данные, такие как строки поиска или привязки, или если вызов был перенаправлен, возвращаемый URL-адрес отличается от исходного. Приложение должно передавать буфер размером в байтах, который достаточно велик для хранения возвращаемого URL-адреса в формате wide char.
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS
Принимает BOOL и может быть задан только дескриптор сеанса. Он будет распространяться только на дескрипторы, созданные из дескриптора сеанса после установки параметра. Если задано значение TRUE, этот параметр в качестве последнего средства вызывает использование учетных данных глобального сервера, которые были отправлены из WinInet. Значение по умолчанию для этого параметра — FALSE. Для этого параметра требуется раздел реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Этот раздел реестра отсутствует по умолчанию. Если он задан, WinINet отправит учетные данные в WinHTTP. Всякий раз, когда WinHttp получает запрос на проверку подлинности и если для текущего дескриптора не заданы учетные данные, он будет использовать учетные данные, предоставленные WinINet.
WINHTTP_OPTION_USE_SESSION_SCH_CRED
Позволяет задать одно удостоверение для использования по умолчанию для всех конечных точек в сеансе вместо учетных данных по умолчанию для каждой конечной точки. Это может повысить производительность за счет сокращения затрат на управление учетными данными. Обратите внимание, что эти учетные данные по умолчанию не будут действовать при явном указании сертификата клиента.
WINHTTP_OPTION_USER_AGENT
Задает или извлекает строку агента пользователя для дескрипторов, предоставляемых WinHttpOpen и используемых в последующих функциях WinHttpSendRequest , если она не переопределяется заголовком, добавленным WinHttpAddRequestHeaders или WinHttpSendRequest. При получении агента пользователя приложение должно передать буфер размером в байтах, достаточно большой для хранения возвращаемого URL-адреса в формате wide char. При задании агента пользователя размер буфера равен длине строки в символах, а также признаку конца NULL .
WINHTTP_OPTION_USERNAME
Задает или извлекает строку, содержащую имя пользователя.
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT
Задает время (в миллисекундах), в течение котором WinHttpWebSocketClose должен ожидать завершения подтверждения закрытия. Значение по умолчанию — 10 секунд.
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
Задает интервал (в миллисекундах) для отправки сохраняемого пакета через подключение. Интервал по умолчанию — 30 000 (30 секунд). Минимальный интервал — 15 000 (15 секунд). При использовании WinHttpSetOption для установки значения ниже 15000 возвращается ERROR_INVALID_PARAMETER.
Примечание
Значение по умолчанию для WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL считывается из HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval. Если значение не задано, будет использоваться значение по умолчанию 30 000. Невозможно иметь более низкий интервал удержания, чем 15 000 миллисекундах.
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE
Задает или извлекает значение DWORD, указывающее размер буфера приема для использования в подключениях WebSocket.
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE
Задает или получает значение DWORD, указывающее размер буфера отправки для использования в подключениях WebSocket.
WINHTTP_OPTION_WORKER_THREAD_COUNT
Задает длинное целое число без знака, указывающее количество рабочих потоков, которые пул потоков должен использовать для асинхронных завершений. Значение этого параметра по умолчанию равно нулю, которое указывает, что количество рабочих потоков равно количеству ЦП в системе. Этот параметр можно задать только для дескриптора NULLHINTERNET до выполнения асинхронной операции. Этот параметр можно задать только один раз.
Область применения: Windows 7 и более поздних версий; Windows Server 2008 R2 и более поздних версий.
WINHTTP_OPTION_WRITE_BUFFER_SIZE
Этот параметр является нерекомендуемой; она не оказывает никакого влияния.
Комментарии
В следующей таблице перечислены флаги параметров, указывая, с какими дескрипторами они могут работать, можно ли запрашивать и задавать, а также используемый тип данных. Значение "X" указывает, что флаг параметра действителен для использования с функцией или дескриптором, а "-" указывает, что флаг параметра является недопустимым.
Попытка задать или запросить флаг параметра в версии Windows, в которой он не поддерживается, приведет к ERROR_WINHTTP_INVALID_OPTION.
Флаг параметра и тип данных | Дескриптор сеанса | Дескриптор запроса | Параметр запросов | Параметр SET | Минимальная версия Windows |
---|---|---|---|---|---|
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS BOOL |
X | - | - | X | - |
WINHTTP_OPTION_AUTOLOGON_POLICY DWORD |
- | X | - | X | - |
WINHTTP_OPTION_BACKGROUND_CONNECTIONS DWORD |
X | - | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_CALLBACK LPVOID |
X | X | X | X | - |
WINHTTP_OPTION_CLIENT_CERT_CONTEXT CERT_CONTEXT |
- | X | - | X | Windows Vista |
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST SecPkgContext_IssuerListInfoEx |
- | X | X | - | Windows Vista |
WINHTTP_OPTION_CODEPAGE DWORD |
X | - | - | X | - |
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH DWORD |
X | - | - | X | - |
WINHTTP_OPTION_CONNECT_RETRIES DWORD |
X | X | X | X | - |
WINHTTP_OPTION_CONNECT_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_CONNECTION_INFO WINHTTP_CONNECTION_INFO |
- | X | X | - | - |
WINHTTP_OPTION_CONNECTION_STATS_V0 TCP_INFO_v0 |
- | X | X | - | Windows 10 версии 1903 |
WINHTTP_OPTION_CONNECTION_STATS_V1 TCP_INFO_v1 |
- | X | X | - | Windows 10 версии 2004 |
WINHTTP_OPTION_CONTEXT_VALUE DWORD_PTR |
X | X | X | X | - |
WINHTTP_OPTION_DECOMPRESSION DWORD |
X | X | - | X | Windows 8.1 |
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING BOOL |
X | - | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_DISABLE_FEATURE DWORD |
- | X | - | X | - |
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK BOOL |
X | - | - | X | Windows 10 версии 1903 |
WINHTTP_OPTION_DISABLE_STREAM_QUEUE BOOL |
X | X | - | X | Windows 10 версия 1809 |
WINHTTP_OPTION_ENABLE_FEATURE DWORD |
* | * | - | X | - |
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL DWORD |
X | X | - | X | Windows 10 версии 1607 |
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT BOOL |
X | - | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_ENABLETRACING DWORD |
- | - | X | X | - |
WINHTTP_OPTION_ENCODE_EXTRA BOOL |
X | X | - | X | Windows 10 версии 1803 |
WINHTTP_OPTION_EXPIRE_CONNECTION Н/Д |
- | X | - | X | Windows 10 версии 1903 |
WINHTTP_OPTION_EXTENDED_ERROR DWORD |
X | X | X | - | - |
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION BOOL |
X | - | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_GLOBAL_PROXY_CREDS WINHTTP_CREDS |
X | X | - | X | - |
WINHTTP_OPTION_GLOBAL_SERVER_CREDS WINHTTP_CREDS_EX |
X | X | - | X | - |
WINHTTP_OPTION_HANDLE_TYPE DWORD |
X | X | X | - | - |
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED BOOL |
X | X | - | X | Windows 10 версии 1903 |
WINHTTP_OPTION_HTTP_PROTOCOL_USED DWORD |
- | X | X | - | Windows 10 версии 1607 |
WINHTTP_OPTION_HTTP_VERSION HTTP_VERSION_INFO |
X | X | X | X | - |
WINHTTP_OPTION_HTTP2_KEEPALIVE DWORD |
X | - | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING BOOL |
X | X | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE BOOL |
- | X | - | X | Windows 10 версии 2004 |
WINHTTP_OPTION_IPV6_FAST_FALLBACK BOOL |
X | - | - | X | Windows 10 версии 1903 |
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE BOOL |
X | X | X | - | - |
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER DWORD |
X | - | X | X | - |
WINHTTP_OPTION_MAX_CONNS_PER_SERVER DWORD |
X | - | X | X | - |
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS DWORD |
X | X | X | X | - |
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE DWORD |
X | X | X | X | - |
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE DWORD |
X | X | X | X | - |
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE DWORD |
X | X | X | X | - |
WINHTTP_OPTION_PARENT_HANDLE HINTERNET |
X | X | X | - | - |
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_PASSPORT_COBRANDING_URL LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_PASSPORT_RETURN_URL LPVOID |
- | X | X | - | - |
WINHTTP_OPTION_PASSPORT_SIGN_OUT LPVOID |
X | - | - | X | - |
WINHTTP_OPTION_PASSWORD LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_PROXY WINHTTP_PROXY_INFO |
X | X | X | X | - |
WINHTTP_OPTION_PROXY_PASSWORD LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_PROXY_SPN_USED LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_PROXY_USERNAME LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_READ_BUFFER_SIZE DWORD |
- | X | X | X | - |
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE BOOL |
X | X | - | X | - |
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_RECEIVE_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_REDIRECT_POLICY DWORD |
X | X | X | X | - |
WINHTTP_OPTION_REJECT_USERPWD_IN_URL BOOL |
- | X | - | X | - |
WINHTTP_OPTION_REQUEST_PRIORITY DWORD |
- | X | X | X | - |
WINHTTP_OPTION_REQUEST_STATS WINHTTP_REQUEST_STATS |
- | X | X | - | Windows 10 версии 1903 |
WINHTTP_OPTION_REQUEST_TIMES WINHTTP_REQUEST_TIMES |
- | X | X | - | Windows 10 версии 1903 |
WINHTTP_OPTION_REQUIRE_STREAM_END BOOL |
X | X | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_RESOLUTION_HOSTNAME LPWSTR |
- | X | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_RESOLVE_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_SECURE_PROTOCOLS DWORD |
X | - | - | X | - |
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT WINHTTP_CERTIFICATE_INFO |
- | X | X | - | - |
WINHTTP_OPTION_SECURITY_FLAGS DWORD |
- | X | X | X | - |
WINHTTP_OPTION_SECURITY_INFO WINHTTP_SECURITY_INFO |
- | X | X | - | Windows 10 версии 2004 |
WINHTTP_OPTION_SECURITY_KEY_BITNESS DWORD |
- | X | X | - | - |
WINHTTP_OPTION_SEND_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_SERVER_CBT SecPkgContext_Bindings* |
- | X | X | - | - |
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT CERT_CHAIN_CONTEXT |
- | X | X | - | Windows 10 версии 2004 |
WINHTTP_OPTION_SERVER_CERT_CONTEXT КОНТЕКСТ CERT |
- | X | X | - | - |
WINHTTP_OPTION_SERVER_SPN_USED LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_SPN DWORD |
- | X | - | X | - |
WINHTTP_OPTION_STREAM_ERROR_CODE DWORD |
- | X | X | - | Windows 10, версия 21H1 |
WINHTTP_OPTION_TCP_FAST_OPEN BOOL |
X | - | - | X | Windows 10 версии 2004 |
WINHTTP_OPTION_TCP_KEEPALIVE tcp_keepalive |
X | - | - | X | Windows 10 версии 2004 |
WINHTTP_OPTION_TLS_FALSE_START BOOL |
X | - | - | X | Windows 10 версии 2004 |
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK BOOL |
X | - | - | X | Windows 10, версия 21H1 |
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT HINTERNET |
X | - | - | X | - |
WINHTTP_OPTION_UNSAFE_HEADER_PARSING DWORD |
- | X | - | X | - |
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET Н/Д |
- | X | - | X | - |
WINHTTP_OPTION_URL LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS BOOL |
X | X | - | X | - |
WINHTTP_OPTION_USER_AGENT LPWSTR |
X | - | X | X | - |
WINHTTP_OPTION_USERNAME LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT DWORD |
- | - | X | X | - |
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL DWORD |
- | - | X | X | - |
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE DWORD |
X | X | X | X | Windows 8.1 |
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE DWORD |
X | X | X | X | Windows 8.1 |
WINHTTP_OPTION_WORKER_THREAD_COUNT DWORD |
- | - | - | X | - |
WINHTTP_OPTION_WRITE_BUFFER_SIZE DWORD |
- | X | X | X | - |
Примечание
Для Windows XP и Windows 2000 см. статью Требования к времени выполнения.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3) [только классические приложения] |
Распространяемые компоненты | WinHTTP 5.0 и Internet Обозреватель 5.01 или более поздней версии в Windows XP и Windows 2000. |
Заголовок | Winhttp.h |