Флаги параметров

Следующие флаги параметров поддерживаются 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

См. также раздел