Optionsflags

Die folgenden Optionsflags werden von WinHttpQueryOption und WinHttpSetOption unterstützt.

WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS

Der Standardwert lautet FALSE. Wenn auf TRUE festgelegt ist, garantiert WinHTTP keinen Fortschritt, wenn status Rückrufe von der Clientanwendung blockiert werden.

Die Clientanwendung muss besonders darauf achten, minimale Vorgänge innerhalb des Rückrufs auszuführen, ohne zu blockieren, so schnell wie möglich zurückzugeben, und darf insbesondere nicht auf nachfolgende WinHTTP-Aufrufe warten. Wenn diese Richtlinien nicht befolgt werden, kann es zu negativen Auswirkungen auf die Leistung kommen oder eine potenzielle Anwendung hängen bleiben. Wenn diese Option in der vorgeschriebenen Weise verwendet wird, kann die Leistung verbessert werden.

WINHTTP_OPTION_AUTOLOGON_POLICY

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der die Richtlinie für automatische Anmeldung mit einem der folgenden Werte angibt.

Begriff Beschreibung
WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH Standardanmeldeinformationen werden nicht verwendet. Beachten Sie, dass dieses Flag nur wirksam wird, wenn Sie den Server nach dem tatsächlichen Computernamen angeben. Es wird nicht wirksam, wenn Sie den Server mit "localhost" oder IP-Adresse angeben.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW Für alle Anforderungen wird ein authentifizierter Anmeldevorgang mit den Standardanmeldeinformationen durchgeführt.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM Ein authentifizierter Anmeldevorgang mit den Standardanmeldeinformationen wird nur für Anforderungen im lokalen Intranet ausgeführt.

WINHTTP_OPTION_BACKGROUND_CONNECTIONS

Wenn Sie diese Option für ein Sitzungshandle festlegen, müssen Sie die Anzahl der Verbindungen übergeben, die Sie öffnen möchten. Beim ersten Senden einer Anforderung öffnet WinHttp dann eine Reihe von Verbindungen parallel, anstatt nur eine einzelne Verbindung zu öffnen. Dies kann die Leistung von nachfolgenden Anforderungen an dasselbe Ziel verbessern, was nicht den Mehraufwand für die Verbindungsherstellung hat.

WINHTTP_OPTION_CALLBACK

Ruft den Zeiger auf den Rückruffunktionssatz mit WinHttpSetStatusCallback ab.

WINHTTP_OPTION_CLIENT_CERT_CONTEXT

Legt den Clientzertifikatkontext fest. Wenn eine Anwendung ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED empfängt, muss winHttpSetOption aufgerufen werden, um ein Zertifikat bereitzustellen, bevor die Anforderung erneut durchgeführt wird. Im Rahmen der Verarbeitung dieser Option ruft WinHttp CertDuplicateCertificateContext im vom Aufrufer bereitgestellten Zertifikatkontext auf, sodass der Zertifikatkontext unabhängig vom Aufrufer freigegeben werden kann.

Hinweis

Die Anwendung sollte nicht versuchen, den Zertifikatspeicher mit dem CERT_CLOSE_STORE_FORCE_FLAG-Flag im Aufruf von CertCloseStore im Zertifikatspeicher zu schließen, aus dem der Zertifikatkontext abgerufen wurde. Möglicherweise tritt eine Zugriffsverletzung auf.

Wenn der Server ein Clientzertifikat anfordert, gibt WinHttpSendRequest oder WinHttpReceiveResponse einen ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED Fehler zurück. Wenn der Server das Zertifikat anfordert, es aber nicht benötigt, kann die Anwendung diese Option angeben, um anzugeben, dass es kein Zertifikat enthält. Der Server kann ein anderes Authentifizierungsschema auswählen oder anonymen Zugriff auf den Server zulassen. Die Anwendung stellt das WINHTTP_NO_CLIENT_CERT_CONTEXT Makro im lpBuffer-Parameter von WinHttpSetOption bereit, wie im folgenden Codebeispiel gezeigt.

BOOL fRet = WinHttpSetOption(hRequest,
                             WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
                             WINHTTP_NO_CLIENT_CERT_CONTEXT,
                             0);

Wenn der Server ein Clientzertifikat erfordert, kann er als Antwort einen 403-HTTP-status-Code senden. Weitere Informationen finden Sie in der Option WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST .

WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST

Ruft eine SecPkgContext_IssuerListInfoEx-Struktur ab, wenn der Fehler von WinHttpSendRequest oder WinHttpReceiveResponseERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED wird. Die Ausstellerliste in der Struktur enthält eine Liste der akzeptablen Zertifizierungsstellen (Certificate Authorities, CA) vom Server. Die Clientanwendung kann die Zertifizierungsstellenliste filtern, um das Clientzertifikat für die SSL-Authentifizierung abzurufen.

Wenn der Server das Clientzertifikat anfordert, es aber nicht erfordert, kann die Anwendung WinHttpSetOption mit der Option WINHTTP_OPTION_CLIENT_CERT_CONTEXT aufrufen. Weitere Informationen finden Sie in der Option WINHTTP_OPTION_CLIENT_CERT_CONTEXT .

WINHTTP_OPTION_CODEPAGE

Legt die Codepage fest, die zum Verarbeiten der URL (d. a. Abfragezeichenfolge) verwendet wird. Der Standardwert ist UTF8.

WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH

Legt einen wert ohne Vorzeichen fest, der angibt, ob die Passport-Authentifizierung in der WinHTTP-Authentifizierung aktiviert ist. Der Wert kann in folgenden Formen vorliegen:

Begriff Beschreibung
WINHTTP_DISABLE_PASSPORT_AUTH Die Microsoft Passport-Authentifizierung ist deaktiviert. Dies ist die Standardeinstellung.
WINHTTP_DISABLE_PASSPORT_KEYRING Der Passport-Schlüsselbund ist deaktiviert. Dies ist die Standardeinstellung.
WINHTTP_ENABLE_PASSPORT_AUTH Die Passport-Authentifizierung ist aktiviert.
WINHTTP_ENABLE_PASSPORT_KEYRING Der Passport-Schlüsselbund ist aktiviert.

WINHTTP_OPTION_CONNECT_RETRIES

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der die Anzahl der Versuche vonWinHTTP, eine Verbindung mit einem Host herzustellen, enthält, oder ruft diesen ab. Microsoft Windows HTTP-Dienste (WinHTTP) versucht nur einmal pro IP-Adresse (Internet Protocol). Wenn Sie beispielsweise versuchen, eine Verbindung mit einem mehrinstanzenfähigen Host herzustellen, der über 10 IP-Adressen verfügt und WINHTTP_OPTION_CONNECT_RETRIES auf 7 festgelegt ist, versucht WinHTTP nur, eine Verbindung mit der ersten sieben IP-Adresse herzustellen. Wenn WINHTTP_OPTION_CONNECT_RETRIES auf 20 festgelegt ist, versucht WinHTTP bei gleichem Satz von 10 IP-Adressen nur einmal. Wenn ein Verbindungsversuch nach der angegebenen Anzahl von Versuchen weiterhin fehlschlägt oder das Verbindungstimeout zuvor abgelaufen ist, wird die Anforderung abgebrochen. Der Standardwert für WINHTTP_OPTION_CONNECT_RETRIES beträgt fünf Versuche.

WINHTTP_OPTION_CONNECT_TIMEOUT

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der den Timeoutwert in Millisekunden enthält, oder ruft diesen ab. Wenn Sie diese Option auf unendlich (0xFFFFFFFF) festlegen, wird dieser Timer deaktiviert.

Wenn eine TCP-Verbindungsanforderung länger dauert als dieser Timeoutwert, wird die Anforderung abgebrochen. Das Standardtimeout beträgt 60 Sekunden. Wenn Sie versuchen, eine Verbindung mit mehreren IP-Adressen für einen einzelnen Host (einen multihomed Host) herzustellen, gilt das Timeoutlimit für jede einzelne Verbindung.

WINHTTP_OPTION_CONNECTION_INFO

Ruft die Quell- und Ziel-IP-Adresse sowie den Port der Anforderung ab, die die Antwort generiert hat, wenn WinHttpReceiveResponse zurückgibt. Die Anwendung ruft WinHttpQueryOption mit der Option WINHTTP_OPTION_CONNECTION_INFO auf und stellt die WINHTTP_CONNECTION_INFO-Struktur im lpBuffer-Parameter bereit. Weitere Informationen finden Sie unter WINHTTP_CONNECTION_INFO.

Gilt für: Windows XP mit SP2 und höher; Windows 2003 mit SP1 und höher.

WINHTTP_OPTION_CONNECTION_GUID

Markieren Sie die Verbindung, die dem WinHTTP-Anforderungshandle zugeordnet ist, mit einer GUID. Dies ermöglicht eine benutzerdefinierte Kontrolle darüber, welche Anforderungen welche Gruppen von Verbindungen mit der Option WINHTTP_OPTION_MATCH_CONNECTION_GUID verwenden.

WINHTTP_OPTION_CONNECTION_STATS_V0

Wiederholt die TCP_INFO_v0-Struktur für die zugrunde liegende Verbindung, die von der Anforderung verwendet wird. Die zurückgegebene Struktur kann Statistiken aus früheren Anforderungen enthalten, die über dieselbe Verbindung gesendet wurden.

Hinweis

Diese Option wurde durch WINHTTP_OPTION_CONNECTION_STATS_V1 ersetzt.

WINHTTP_OPTION_CONNECTION_STATS_V1

Wiederholt die TCP_INFO_v1-Struktur für die zugrunde liegende Verbindung, die von der Anforderung verwendet wird. Die zurückgegebene Struktur kann Statistiken aus früheren Anforderungen enthalten, die über dieselbe Verbindung gesendet wurden.

WINHTTP_OPTION_CONTEXT_VALUE

Legt einen DWORD_PTR fest, der einen Zeiger auf den diesem HINTERNET-Handle zugeordneten Kontextwert enthält, oder ruft diesen ab. Der im Puffer gespeicherte Wert wird verwendet, und dem WINHTTP_OPTION_CONTEXT_VALUE Optionsflag wird ein neuer Wert zugewiesen.

WINHTTP_OPTION_DECOMPRESSION

Legt ein DWORD mit Flags fest, die bestimmen, ob WinHTTP Antworttexte mit komprimierten Inhaltscodierungen automatisch dekomprimiert. WinHTTP legt auch einen entsprechenden Accept-Encoding-Header fest, der alle vom Aufrufer bereitgestellten Überschreibungen überschreibt. Diese Werte werden unterstützt:

Begriff BESCHREIBUNG
WINHTTP_DECOMPRESSION_FLAG_GZIP Dekomprimieren von Content-Encoding: gzip-Antworten.
WINHTTP_DECOMPRESSION_FLAG_DEFLATE Dekomprimieren der Inhaltscodierung: Antworten deflate.
WINHTTP_DECOMPRESSION_FLAG_ALL Dekomprimieren Von Antworten mit allen unterstützten Inhaltscodierungen.

Standardmäßig übermittelt WinHTTP komprimierte Antworten an den Aufrufer unverändert.

WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING

Wenn Sie diese Option für ein WinHttp-Sitzungshandle festlegen, können Sie aktivieren/deaktivieren, ob die Serverzertifikatkette erstellt wird.

WINHTTP_OPTION_DISABLE_FEATURE

Legt einen wert ohne Vorzeichen mit langer Ganzzahl fest, der angibt, welche Features mit einem oder mehreren der folgenden Flags deaktiviert sind. Beachten Sie, dass dieses Feature bei Anforderungshandles nur an WinHttpSetOption übergeben werden sollte, nachdem das Anforderungshandle mit WinHttpOpenRequest erstellt wurde und bevor die Anforderung mit WinHttpSendRequest gesendet wird.

Begriff BESCHREIBUNG
WINHTTP_DISABLE_AUTHENTICATION Die automatische Authentifizierung ist deaktiviert.
WINHTTP_DISABLE_COOKIES Das automatische Hinzufügen von Cookie-Headern zu Anforderungen ist deaktiviert. Außerdem werden zurückgegebene Cookies nicht automatisch der Cookie-Datenbank hinzugefügt. Das Deaktivieren von Cookies kann zu einer schlechten Leistung bei der Passport-Authentifizierung führen.
WINHTTP_DISABLE_KEEP_ALIVE Deaktiviert die Keep-Alive-Semantik für die Verbindung. Keep-Alive-Semantik ist für MSN, NTLM und andere Authentifizierungstypen erforderlich.
WINHTTP_DISABLE_REDIRECTS Die automatische Umleitung ist deaktiviert, wenn Anforderungen mit WinHttpSendRequest gesendet werden. Wenn die automatische Umleitung deaktiviert ist, muss eine Anwendung eine Rückruffunktion registrieren, damit die Passport-Authentifizierung erfolgreich ist.

WINHTTP_OPTION_DISABLE_GLOBAL_POOLING

Deaktiviert das globale sitzungsübergreifende Pooling. Dies wird empfohlen, da globales, sitzungsübergreifendes Pooling ein Legacyverhalten ist, das aus Kompatibilitätsgründen standardmäßig unterstützt wird. Dies wird dadurch beeinträchtigt, dass die maximale Anzahl von Verbindungen später manuell festgelegt wird.

WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES

Deaktiviert mindestens eine der folgenden Proxyauthentifizierungsmethoden für die WinHTTP-Sitzung, indem alle OR anwendbaren Optionen bereitgestellt werden. Dies sind alles Schemas, mit Ausnahme von WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE, die die Verwendung des kontos des lokalen Computers erzwingen, wenn Anforderungen an eine Loopback- oder lokale Adresse gesendet werden. Dadurch wird verhindert, dass Systemanmeldeinformationen an lokale HTTP-Proxys weitergegeben werden.

Begriff BESCHREIBUNG
WINHTTP_PROXY_DISABLE_SCHEME_BASIC Deaktiviert das Standardauthentifizierungsschema.
WINHTTP_PROXY_DISABLE_SCHEME_DIGEST Deaktiviert das Digestauthentifizierungsschema.
WINHTTP_PROXY_DISABLE_SCHEME_NTLM Deaktiviert das NTLM-Authentifizierungsschema.
WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS Deaktiviert das Kerberos-Authentifizierungsschema.
WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE Deaktiviert das Negotiate-Authentifizierungsschema.
WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE Erzwingt die Verwendung des lokalen Computerkontos beim Senden von Anforderungen an eine Loopback- oder lokale Adresse.

WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK

Verhindert, dass WinHTTP eine Verbindung mit einer niedrigeren Version des Sicherheitsprotokolls wiederholt, wenn die anfängliche Protokollverhandlung fehlschlägt.

WINHTTP_OPTION_DISABLE_STREAM_QUEUE

Ermöglicht neuen Anforderungen das Öffnen einer zusätzlichen HTTP/2-Verbindung, wenn die maximale Anzahl gleichzeitiger Datenstrom erreicht ist, anstatt auf den nächsten verfügbaren Stream für eine vorhandene Verbindung zu warten.

WINHTTP_OPTION_ENABLE_FEATURE

Legt einen wert ohne Vorzeichen mit langer Ganzzahl fest, der die derzeit aktivierten Features angibt. Dies kann einer der folgenden Werte sein.

Begriff BESCHREIBUNG
WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION Wenn diese Option aktiviert ist, wird der Clientidentitätswechsel für die Dauer der SSL-Zertifikatauthentifizierungsvorgänge vorübergehend zurückgesetzt. Dieser Wert kann nur für das Sitzungshandle festgelegt werden.
WINHTTP_ENABLE_SSL_REVOCATION Wenn diese Option aktiviert ist, lässt WinHTTP die SSL-Sperrung zu. Dieser Wert kann nur für das Anforderungshandle festgelegt werden.

WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL

Legt eine DWORD-Bitmaske für akzeptable erweiterte HTTP-Versionen fest. Mögliche Werte:

Begriff BESCHREIBUNG
WINHTTP_PROTOCOL_FLAG_HTTP2 (0x1) Aktiviert HTTP/2 für die Anforderung.
WINHTTP_PROTOCOL_FLAG_HTTP3 (0x2) Aktiviert HTTP/3 für die Anforderung.
Keine (0x0) Beschränkt die Anforderung auf HTTP/1.1 und früher.

Legacyversionen von HTTP (1.1 und früher) können mit dieser Option nicht deaktiviert werden. Der Standardwert ist 0x0.

WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT

Diese Option kann für ein WinHttp-Sitzungshandle festgelegt werden, damit WinHttp den vom Aufrufer bereitgestellten Clientzertifikatkontext verwenden kann, wenn HTTP/2 verwendet wird.

WINHTTP_OPTION_ENABLETRACING

Legt einen BOOL-Wert fest, der angibt, ob die Ablaufverfolgung derzeit aktiviert ist. Diese Option kann nur für ein HINTERNET-Handle mit NULL festgelegt werden. Weitere Informationen finden Sie unter Sammeln von WinHTTP-Ablaufverfolgungen.

WINHTTP_OPTION_ENCODE_EXTRA

Aktiviert die URL-Prozentcodierung für Pfad und Abfragezeichenfolge.

Alternativ können Sie vor dem Aufrufen von WinHttp prozentual codieren.

WINHTTP_OPTION_EXPIRE_CONNECTION

Diese Option kann nur für ein Anforderungshandle festgelegt werden, das noch aktiv ist (Senden oder Empfangen). Durch Festlegen dieser Option wird WinHttp aufgefordert, die Bereitstellung von Anforderungen für die Verbindung zu beenden, die dem übergebenen Anforderungshandle zugeordnet ist. Die Verbindung wird geschlossen, nachdem das Anforderungshandle, mit dem diese Option aufgerufen wird, abgeschlossen ist. Diese Option akzeptiert keine Parameter.

WINHTTP_OPTION_EXTENDED_ERROR

Ruft einen unsigned long integer-Wert ab, der einen Microsoft Windows Sockets-Fehlercode enthält, der den ERROR_WINHTTP_*-Fehlermeldungen zugeordnet wurde, die zuletzt in diesem Threadkontext zurückgegeben wurden. Sie können NULL als Handle-Wert übergeben.

WINHTTP_OPTION_FEATURE_SUPPORTED

Überprüfen Sie, ob ein bereitgestelltes Optionsflag von dieser WinHTTP-Version unterstützt wird.

WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION

Wenn WinHttp eine Anforderung sendet und keine Verbindungen für die Anforderung verfügbar sind, versucht WinHttp standardmäßig, eine neue Verbindung herzustellen, und die Anforderung wird an diese neue Verbindung gebunden. Wenn Sie diese Option festlegen, wird eine solche Anforderung stattdessen für die erste Verbindung bereitgestellt, die verfügbar wird, und nicht unbedingt für die, die eingerichtet wird.

WINHTTP_OPTION_GLOBAL_PROXY_CREDS

Verwendet einen Zeiger auf eine WINHTTP_CREDS_EX-Struktur , wobei der hInternet-Funktionsparameter auf NULL festgelegt ist. Für diese Option ist der Registrierungsschlüssel HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings erforderlich! ShareCredsWithWinHttp. Wenn dieser Registrierungsschlüssel nicht festgelegt ist, gibt WinHTTP einen Fehler ERROR_WINHTTP_INVALID_OPTION zurück. Dieser Registrierungsschlüssel ist standardmäßig nicht vorhanden. Wenn sie festgelegt ist, sendet WinINet Anmeldeinformationen an WinHTTP. Wenn WinHttp eine Authentifizierungsanforderung erhält und keine Anmeldeinformationen für das aktuelle Handle festgelegt sind, werden die von WinINet bereitgestellten Anmeldeinformationen verwendet. Um neben Proxyanmeldeinformationen auch Serveranmeldeinformationen freizugeben, müssen Benutzer WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS festlegen.

WINHTTP_OPTION_GLOBAL_SERVER_CREDS

Verwendet einen Zeiger auf eine WINHTTP_CREDS_EX-Struktur , wobei der hInternet-Funktionsparameter auf NULL festgelegt ist. Für diese Option ist der Registrierungsschlüssel HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings erforderlich! ShareCredsWithWinHttp. Wenn dieser Registrierungsschlüssel nicht festgelegt ist, gibt WinHTTP einen Fehler ERROR_WINHTTP_INVALID_OPTION zurück. Dieser Registrierungsschlüssel ist standardmäßig nicht vorhanden. Wenn sie festgelegt ist, sendet WinINet Anmeldeinformationen an WinHTTP. Wenn WinHttp eine Authentifizierungsanforderung erhält und keine Anmeldeinformationen für das aktuelle Handle festgelegt sind, werden die von WinINet bereitgestellten Anmeldeinformationen verwendet. Um neben Proxyanmeldeinformationen auch Serveranmeldeinformationen freizugeben, müssen Benutzer WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS festlegen.

WINHTTP_OPTION_HANDLE_TYPE

Ruft einen ganzzahligen Wert ohne Vorzeichen ab, der den Typ des übergebenen HINTERNET-Handles enthält. Einer der folgenden Werte kann zurückgegeben werden:

Begriff BESCHREIBUNG
WINHTTP_HANDLE_TYPE_CONNECT Das Handle ist ein Verbindungshandle.
WINHTTP_HANDLE_TYPE_REQUEST Das Handle ist ein Anforderungshandle.
WINHTTP_HANDLE_TYPE_SESSION Das Handle ist ein Sitzungshandle.

WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED

Verhindert, dass andere Als die von WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL aktivierten Protokollversionen für die Anforderung verwendet werden.

WINHTTP_OPTION_HTTP_PROTOCOL_USED

Ruft ein DWORD ab, das angibt, welche erweiterte HTTP-Version für eine bestimmte Anforderung verwendet wurde. Eine Liste der möglichen Werte finden Sie unter WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL.

WINHTTP_OPTION_HTTP_VERSION

Legt eine HTTP_VERSION_INFO-Struktur fest, die die unterstützte HTTP-Version enthält, oder ruft sie ab. Dies ist eine prozessweite Option. verwenden Sie NULL für das Handle.

WINHTTP_OPTION_HTTP2_KEEPALIVE

Diese Option kann für ein Sitzungshandle festgelegt werden, damit WinHttp HTTP/2-PING-Frames als Keepalive-Mechanismus verwendet. Anrufer geben ein Timeout in Millisekunden an, und nachdem für diesen Timeoutzeitraum keine Aktivität für eine Verbindung vorhanden ist, beginnt WinHttp mit dem Senden von HTTP/2 PING-Frames. Anrufer können keinen Timeoutwert unter 5000 Millisekunden festlegen.

WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING

Diese Option kann für ein WinHttp-Anforderungshandle festgelegt werden, um das Verhalten von WinHttp zu steuern, wenn eine HTTP/2-Antwort einen "Transfer-Encoding"-Header enthält. In einem solchen Fall gibt WinHttp einen Fehler zurück, wenn diese Option auf FALSE festgelegt ist.

WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW

Legen Sie die anfängliche Größe des HTTP/2-Datenstrom-Empfangsfensters und den Schwellenwert für das Senden von Fensterupdates mithilfe der WINHTTP_HTTP2_RECEIVE_WINDOW-Struktur fest.

WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT

Verwendet den Puffer, um das HTTP/3-Handshake-Timeout in Millisekunden als PDWORD festzulegen.

WINHTTP_OPTION_HTTP3_INITIAL_RTT

Konfiguriert die anfängliche RTT in Millisekunden, die von msquic verwendet wird.

WINHTTP_OPTION_HTTP3_KEEPALIVE

Aktiviert Keep-Alive-Semantik für die Verbindung. Verwendet den Puffer, um das Keep-Alive-Timeout in Millisekunden als PDWORD festzulegen.

WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE

Ruft den vom Server bereitgestellten Fehler für den HTTP/3-Stream ab, der zum Senden der Anforderung verwendet wird.

WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE

Ermöglicht sicheren Verbindungen die Verwendung von Sicherheitszertifikaten, für die die Zertifikatsperrliste nicht heruntergeladen werden konnte.

WINHTTP_OPTION_IPV6_FAST_FALLBACK

Aktiviert das schnelle IPv6-Fallback (Happier Eyeballs) für die Verbindung. Dieses Verhalten ähnelt dem Verhalten von Happy Eyeballs, das in RFC 6555 beschrieben wird, um die Verbindungszeiten in Netzwerken zu verbessern, in denen IPv6 unzuverlässig ist.

  • Wenn sowohl IPv6- als auch IPv4-Adressen für einen bestimmten Host aufgelöst werden, stellt WinHttp zunächst eine Verbindung mit der ersten aufgelösten IPv6-Adresse mit einem kurzen Timeout (300 ms) her.
  • Sollte bei dieser Verbindung ein Fehler auftreten, versucht WinHttp, eine Verbindung mit der ersten aufgelösten IPv4-Adresse mit dem Standardtimeout herzustellen.
  • Sollte bei der zweiten Verbindung ein Fehler auftreten, versucht WinHttp die erste aufgelöste IPv6-Adresse mit dem Standardtimeout erneut.
  • Sollte bei der dritten Verbindung ein Fehler auftreten, rückgängig machen WinHttp auf das Standardverhalten für alle verbleibenden Adressen. Dabei wird versucht, eine Verbindung mit jeder Adresse mit dem Standardtimeout herzustellen, bis eine Verbindung hergestellt wird oder keine Adressen mehr vorhanden sind.

WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE

Ruft ab, ob eine Proxy return Connect Response abgerufen werden kann.

WINHTTP_OPTION_MATCH_CONNECTION_GUID

Nimmt eine WINHTTP_MATCH_CONNECTION_GUID-Anweisung an, um WinHTTP anzuweisen, die Anforderung für eine übereinstimmende Verbindung zu verarbeiten. Wenn WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRED festgelegt ist, können nur Verbindungen mit einer übereinstimmenden GUID verwendet werden. Andernfalls können Verbindungen mit übereinstimmenden GUIDs und Verbindungen verwendet werden, die nicht mit einer GUID gekennzeichnet sind.

WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der die maximal zulässige Anzahl von Verbindungen pro HTTP/1.0-Server enthält, oder ruft diesen ab. Der Standardwert ist INFINITE.

Gilt für: Windows Vista mit SP1 und höher; Windows Server 2008 und höher.

WINHTTP_OPTION_MAX_CONNS_PER_SERVER

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der die maximal zulässige Anzahl von Verbindungen pro Server enthält, oder ruft diesen ab. Der Standardwert ist INFINITE.

Wenn diese Option auf 0 festgelegt ist, legt WinHTTP den Grenzwert für die Anzahl der Verbindungen auf 2 fest.

WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS

Legt die maximale Anzahl von Umleitungen fest, die WinHTTP folgt. der Standardwert ist 10. Dieser Grenzwert verhindert, dass nicht autorisierte Websites den WinHTTP-Client nach einer großen Anzahl von Umleitungen anhalten.

Gilt für: Windows XP mit SP1 und höher; Windows 2000 mit SP3 und höher.

WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE

Die maximale Anzahl von Informational 100-199 status Codeantworten, die ignoriert werden, bevor der endgültige status Code an den WinHTTP-Client zurückgegeben wird. Information 100-199 status Codes können vom Server vor dem endgültigen status-Code gesendet werden und werden in der Spezifikation für HTTP/1.1 beschrieben (weitere Informationen finden Sie unter RFC 2616). Der Standardwert ist 10.

Gilt für: Windows XP mit SP1 und höher; Windows 2000 mit SP3 und höher.

WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE

Eine Bindung an die Menge an Daten, die aus Antworten entwässert werden, um eine Verbindung wiederzuverwenden, die in Bytes angegeben ist. Der Standardwert ist 1 MB.

Gilt für: Windows XP mit SP1 und höher; Windows 2000 mit SP3 und höher.

WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE

Ein gebundener Satz für die maximale Größe des Headerteils der Serverantwort, angegeben in Bytes. Diese Bindung schützt den Client vor einem nicht autorisierten Server, der versucht, den Client zu blockieren, indem eine Antwort mit einer unendlichen Menge an Headerdaten gesendet wird. Der Standardwert ist 64 KB.

Gilt für: Windows XP mit SP1 und höher; Windows 2000 mit SP3 und höher.

WINHTTP_OPTION_PARENT_HANDLE

Ruft das übergeordnete Handle für dieses Handle ab.

WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT

Ruft eine Zeichenfolge ab, die den vom Passport-Anmeldeserver bereitgestellten Cobrandingtext enthält. Diese Option sollte sofort abgerufen werden, nachdem der Anmeldeserver mit einem 401-status-Code reagiert hat. Eine Anwendung sollte eine Puffergröße in Bytes übergeben, die groß genug ist, um die zurückgegebene Zeichenfolge zu enthalten.

WINHTTP_OPTION_PASSPORT_COBRANDING_URL

Ruft eine Zeichenfolge ab, die eine URL für eine Vom Passport-Anmeldeserver bereitgestellte Cobrandinggrafik enthält. Diese Option sollte sofort abgerufen werden, nachdem der Anmeldeserver mit einem 401-status-Code antwortet. Eine Anwendung sollte eine Puffergröße in Bytes übergeben, die groß genug ist, um die zurückgegebene Zeichenfolge zu enthalten.

WINHTTP_OPTION_PASSPORT_RETURN_URL

Legt eine schreibgeschützte Option für ein Anforderungshandle fest, das die Passport-Rückgabe-URL abruft.

WINHTTP_OPTION_PASSPORT_SIGN_OUT

Legt die Option für ein Sitzungshandle fest, um sich von passport-Anmeldungen abzumelden. Eine Anwendung sollte die Passport-Rückgabe-URL übergeben, die mit WINHTTP_OPTION_PASSPORT_RETURN_URL abgerufen wurde. Alle Cookies im Zusammenhang mit der Rückgabe-URL werden gelöscht.

WINHTTP_OPTION_PASSWORD

Legt einen Zeichenfolgenwert fest, der das Kennwort enthält, das einem Anforderungshandle zugeordnet ist, oder ruft diesen ab.

WINHTTP_OPTION_PROXY

Legt eine WINHTTP_PROXY_INFO-Struktur fest, die die Proxydaten in einem vorhandenen Sitzungshandle oder Anforderungshandle enthält, oder ruft sie ab. Beim Abrufen von Proxydaten muss eine Anwendung die in dieser Struktur enthaltenen Zeichenfolgen lpszProxy und lpszProxyBypass (wenn sie nicht NULL sind) mithilfe der GlobalFree-Funktion freigeben. Eine Anwendung kann die globalen Proxydaten (standardproxy) abfragen, indem sie ein NULL-Handle übergibt.

WINHTTP_OPTION_PROXY_PASSWORD

Legt einen Zeichenfolgenwert fest, der das Kennwort für den Zugriff auf den Proxy enthält, oder ruft diesen ab.

WINHTTP_OPTION_PROXY_SPN_USED

Ruft den Proxyserverprinzipalnamen ab, den WinHTTP während der Authentifizierung für SSPI bereitgestellt hat. Dieser Zeichenfolgenwert wird für die Übergabe an SspiPromptForCredentials nach einem Authentifizierungsfehler verwendet.

WINHTTP_OPTION_PROXY_USERNAME

Legt einen Zeichenfolgenwert fest, der den Benutzernamen enthält, der für den Zugriff auf den Proxy verwendet wird, oder ruft diesen ab.

WINHTTP_OPTION_QUIC_STATS

Ruft eine QUIC_STATISTICS-Struktur ab, die Verbindungsinformationen wie RTT und gesendete und empfangene Bytes enthält.

WINHTTP_OPTION_READ_BUFFER_SIZE

Diese Option ist veraltet. es hat keine Auswirkung.

WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE

Legt fest, ob die Proxyantwortentität abgerufen werden kann. Diese Option ist standardmäßig deaktiviert.

WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT

Legt einen wert ohne Vorzeichen mit langer Ganzzahl fest, der den Timeoutwert in Millisekunden enthält, um auf den Empfang aller Antwortheader für eine Anforderung zu warten, oder ruft diesen ab. Wenn WinHTTP innerhalb dieses Timeoutzeitraums nicht alle Header empfängt, wird die Anforderung abgebrochen. Der Standardtimeoutwert beträgt 90 Sekunden.

Dieses Timeout wird nur überprüft, wenn Daten vom Socket empfangen werden. Wenn das Timeout abläuft, wird die Clientanwendung daher erst benachrichtigt, wenn weitere Daten vom Server eingehen. Wenn keine Daten vom Server eingehen, kann die Verzögerung zwischen dem Ablauf des Timeouts und der Benachrichtigung der Clientanwendung so groß sein wie der Timeoutwert, der mithilfe des dwReceiveTimeout-Parameters der WinHttpSetTimeouts-Funktion festgelegt wurde.

WINHTTP_OPTION_RECEIVE_TIMEOUT

Legt einen wert ohne Vorzeichen mit langer Ganzzahl fest, der den Timeoutwert in Millisekunden enthält, um eine partielle Antwort auf eine Anforderung zu erhalten oder daten zu lesen. Dauert die Antwort länger als dieser Timeout-Wert, wird die Anforderung abgebrochen. Der Standard-Timeoutwert beträgt 30 Sekunden.

WINHTTP_OPTION_REDIRECT_POLICY

Legt das Verhalten von WinHTTP in Bezug auf die Behandlung einer 30-fachen HTTP-Umleitung status Code fest. Diese Option kann für ein Sitzungs- oder Anforderungshandle auf einen der folgenden Werte festgelegt werden:

Begriff BESCHREIBUNG
WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS Alle Umleitungen werden automatisch befolgt.
WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP Alle Umleitungen werden befolgt, mit Ausnahme derer, die von einer sicheren URL (https) zu einer unsicheren URL (HTTP) stammen. Dies ist die Standardeinstellung.
WINHTTP_OPTION_REDIRECT_POLICY_NEVER Umleitungen werden nie befolgt. Die 30-fache status wird an die Anwendung zurückgegeben.

WINHTTP_OPTION_REJECT_USERPWD_IN_URL

Lehnt URLs ab, die einen Benutzernamen und ein Kennwort enthalten. Diese Option lehnt auch URLs ab, die username:password semantics enthalten, auch wenn kein Benutzername oder Kennwort angegeben ist. Beispielsweise würden "u:p@hostname", ":@hostname", "u:@hostname" und ":p@hostname" als ungültig gekennzeichnet. Wenn eine ungültige URL an die Funktion übergeben wird, wird ERROR_WINHTTP_INVALID_URL zurückgegeben. Standardmäßig ist diese Option deaktiviert.

WINHTTP_OPTION_REQUEST_ANNOTATION

Ermöglicht das Abrufen und Festlegen einer Anforderungsanmerkung für den angegebenen Anmerkungsnamen. Dadurch kann der Aufrufer eine Zeichenfolge an die Anforderung für einen späteren Abruf anfügen, um Anforderungen anhand der vom Aufrufer für nützlich erachteten benutzerdefinierten Logik zu identifizieren.

WINHTTP_OPTION_REQUEST_PRIORITY

Diese Option ist veraltet. es hat keine Auswirkung.

WINHTTP_OPTION_REQUEST_STATS

Wiederholt Statistiken für die Anforderung. Eine Liste der verfügbaren Statistiken finden Sie unter WINHTTP_REQUEST_STATS.

WINHTTP_OPTION_REQUEST_TIMES

Wiederherstellen der Zeitsteuerungsinformationen für die Anforderung. Eine Liste der verfügbaren Zeitangaben finden Sie unter WINHTTP_REQUEST_TIMES.

WINHTTP_OPTION_REQUIRE_STREAM_END

Diese Option weist WinHttp an, "Content-Length"-Antwortheader zu ignorieren und den Empfang für einen Stream fortzusetzen, bis das flag END_STREAM empfangen wird.

WINHTTP_OPTION_RESOLUTION_HOSTNAME

Diese Option kann für ein WinHttp-Anforderungshandle festgelegt werden, bevor es gesendet wurde. Wenn diese Einstellung festgelegt ist, verwendet WinHttp die vom Aufrufer bereitgestellte Zeichenfolge als Hostnamen für die DNS-Auflösung.

WINHTTP_OPTION_RESOLVE_TIMEOUT

Legt einen wert ohne Vorzeichen mit langer Ganzzahl fest, der den Timeoutwert in Millisekunden zum Auflösen eines Hostnamens enthält, oder ruft diesen ab. Der Standardtimeoutwert ist INFINITE. Wenn ein Nicht-Standardwert angegeben wird, entsteht ein Mehraufwand von einer Threaderstellung pro Namensauflösung.

WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT

Stellt beim Erstellen der Serverzertifikatkette jeden Threadidentitätswechsel zurück und erzwingt stattdessen die Verwendung des Prozesstokens.

WINHTTP_OPTION_SECURE_PROTOCOLS

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der angibt, welche sicheren Protokolle zulässig sind.

  • Windows 11, Windows 10 und Windows 8.1. Standardmäßig sind nur SSL3, TLS1.0, TLS1.1 und TLS1.2 aktiviert.
  • Windows 8 und Windows 7. Standardmäßig sind nur SSL3 und TLS1 aktiviert.

Der Wert kann eine Kombination aus einem oder mehreren der folgenden Werte sein.

Begriff BESCHREIBUNG
WINHTTP_FLAG_SECURE_PROTOCOL_ALL Die Protokolle Secure Sockets Layer (SSL) 2.0, SSL 3.0 und TLS 1.0 (Transport Layer Security) können verwendet werden.
WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 Das SSL 2.0-Protokoll kann verwendet werden.
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 Das SSL 3.0-Protokoll kann verwendet werden.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 Das TLS 1.0-Protokoll kann verwendet werden.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 Das TLS 1.1-Protokoll kann verwendet werden.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 Das TLS 1.2-Protokoll kann verwendet werden.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 Das TLS 1.3-Protokoll kann verwendet werden.

Wenn Sie Unterstützung für TLS 1.1- oder TLS 1.2-Protokolle hinzufügen müssen, Ihre Anwendung jedoch nicht erneut kompilieren können, um die entsprechenden Werte von WINHTTP_OPTION_SECURE_PROTOCOLS zu verwenden, können Sie stattdessen den DefaultSecureProtocols Registrierungseintrag hinzufügen. Mit diesem Registrierungseintrag können Sie angeben, welche SSL-Protokolle verwendet werden sollen, wenn das flag WINHTTP_OPTION_SECURE_PROTOCOLS verwendet wird.

Wichtig

Die folgenden Anweisungen umfassen das Ändern der Registrierung. Wenn Sie die Registrierung falsch ändern, können jedoch schwerwiegende Probleme auftreten. Stellen Sie daher sicher, dass Sie diese Anweisungen sorgfältig befolgen. Sichern Sie die Registrierung zum zusätzlichen Schutz, bevor Sie sie ändern. Sie können dann die Registrierung wiederherstellen, falls ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie unter Sichern und Wiederherstellen der Registrierung in Windows.

Wenn eine Anwendung WINHTTP_OPTION_SECURE_PROTOCOLS angibt, sucht das System nach dem DefaultSecureProtocols Registrierungseintrag und überschreibt, falls vorhanden, die von WINHTTP_OPTION_SECURE_PROTOCOLS angegebenen Standardprotokolle mit den im DefaultSecureProtocols Registrierungseintrag angegebenen Protokollen. Wenn der Registrierungseintrag nicht vorhanden ist, verwendet WinHTTP die vorhandenen Betriebssystemstandardeinstellungen für WINHTTP_OPTION_SECURE_PROTOCOLS. Diese WinHTTP-Standardwerte folgen den vorhandenen Rangfolgeregeln und werden von den von WinHttpSetOption (Secure Channel) deaktivierten Protokollen und Protokollen überstimmt.

Sie können den DefaultSecureProtocols Registrierungseintrag im folgenden Pfad hinzufügen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

Auf x64-basierten Computern müssen Sie dem Wow6432Node Pfad auch Folgendes hinzufügenDefaultSecureProtocols:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

Der Registrierungswert ist eine DWORD-Bitmap. Der zu verwendende Wert wird durch Hinzufügen der Werte bestimmt, die den gewünschten Protokollen entsprechen.

DefaultSecureProtocols-Wert Protokoll aktiviert
0x00000008 Standardmäßiges Aktivieren von SSL 2.0
0x00000020 Standardmäßiges Aktivieren von SSL 3.0
0x00000080 Standardmäßiges Aktivieren von TLS 1.0
0x00000200 Standardmäßiges Aktivieren von TLS 1.1
0x00000800 Standardmäßiges Aktivieren von TLS 1.2

Wenn Sie z. B. die Standardwerte für WINHTTP_OPTION_SECURE_PROTOCOLS tls 1.1 und TLS 1.2 angeben möchten. Nehmen Sie in diesem Fall den Wert für TLS 1.1 (0x00000200) und den Wert für TLS 1.2 (0x00000800), fügen Sie sie im Rechner (im Programmierermodus) zusammen hinzu, und der resultierende Registrierungswert wäre 0x00000A00.

WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT

Ruft das Zertifikat für einen SSL/TLS-Server in die WINHTTP_CERTIFICATE_INFO-Struktur ab. Die Anwendung muss die Mitglieder lpszSubjectInfo und lpszIssuerInfo mit LocalFree freigeben.

WINHTTP_OPTION_SECURITY_FLAGS

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der die Sicherheitsflags für ein Handle enthält, oder ruft diesen ab. Es kann eine Kombination dieser Werte sein:

Begriff Beschreibung
SECURITY_FLAG_IGNORE_CERT_CN_INVALID Lässt einen ungültigen allgemeinen Namen in einem Zertifikat zu. Das heißt, der von der Anwendung angegebene Servername stimmt nicht mit dem allgemeinen Namen im Zertifikat überein. Wenn dieses Flag festgelegt ist, empfängt die Anwendung keinen WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID Rückruf.
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID Lässt ein ungültiges Zertifikatdatum zu, d. h. ein abgelaufenes oder noch nicht gültiges Zertifikat. Wenn dieses Flag festgelegt ist, empfängt die Anwendung keinen WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID Rückruf.
SECURITY_FLAG_IGNORE_UNKNOWN_CA Lässt eine ungültige Zertifizierungsstelle zu. Wenn dieses Flag festgelegt ist, empfängt die Anwendung keinen WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA Rückruf.
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE Ermöglicht die Einrichtung der Identität eines Servers mit einem Nicht-Serverzertifikat (z. B. einem Clientzertifikat).
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE Ermöglicht das Ignorieren einer schwachen Signatur.
Dieses Flag ist im Rollupupdate für jedes Betriebssystem ab Windows 7 und Windows Server 2008 R2 verfügbar.
SECURITY_FLAG_SECURE Verwendet sichere Übertragungen. Dies wird nur in einem Aufruf von WinHttpQueryOption zurückgegeben.
SECURITY_FLAG_STRENGTH_MEDIUM Verwendet eine mittlere (56-Bit)-Verschlüsselung. Dies wird nur in einem Aufruf von WinHttpQueryOption zurückgegeben.
SECURITY_FLAG_STRENGTH_STRONG Verwendet eine starke (128-Bit)-Verschlüsselung. Dies wird nur in einem Aufruf von WinHttpQueryOption zurückgegeben.
SECURITY_FLAG_STRENGTH_WEAK Verwendet eine schwache (40-Bit)-Verschlüsselung. Dies wird nur in einem Aufruf von WinHttpQueryOption zurückgegeben.

WINHTTP_OPTION_SECURITY_INFO

Wiederholt die SChannel-Verbindungs- und Verschlüsselungsinformationen für eine Anforderung.

WINHTTP_OPTION_SECURITY_KEY_BITNESS

Ruft einen ganzzahligen Wert ohne Vorzeichen ab, der die Verschlüsselungsstärke des Verschlüsselungsschlüssels enthält. Eine größere Zahl weist auf eine stärkere Verschlüsselung der Verschlüsselungsstärke hin.

WINHTTP_OPTION_SEND_TIMEOUT

Legt einen ganzzahligen Wert ohne Vorzeichen fest, der den Timeoutwert in Millisekunden enthält, um eine Anforderung zu senden oder Daten zu schreiben. Wenn das Senden der Anforderung länger dauert als das Timeout, wird der Sendevorgang abgebrochen. Der Standardzeitraum bis zum Timeout beträgt 30 Sekunden.

WINHTTP_OPTION_SERVER_CBT

Ruft einen Zeiger auf SecPkgContext_Bindings Struktur ab, die ein Kanalbindungstoken (Channel Binding Token, CBT) angibt.

Ein Kanalbindungstoken ist eine Eigenschaft eines sicheren Transportkanals und wird verwendet, um einen Authentifizierungskanal an den sicheren Transportkanal zu binden. Dieses Token kann nur über diese Option abgerufen werden, nachdem eine SSL-Verbindung hergestellt wurde.

Hinweis

Durch Das Übergeben dieser Option und eines NULL-Werts für lpBuffer an WinHttpQueryOption wird ERROR_INSUFFICIENT_BUFFER und die erforderliche Bytegröße für den Puffer im lpdwBufferLength-Parameter zurückgegeben. Dieser zurückgegebene Puffergrößeswert kann in einem nachfolgenden Aufruf der Abfrage für das Kanalbindungstoken übergeben werden. Diese Schritte sind bei der Verarbeitung WINHTTP_CALLBACK_STATUS_REQUEST erforderlich, wenn Sie Anforderungsheader basierend auf dem Kanalbindungstoken ändern möchten. Beachten Sie, dass Windows XP und Vista das Ändern von Anforderungsheadern während dieses Rückrufs nicht unterstützen.

WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT

Ruft den Kontext der Serverzertifizierungskette ab. WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT können übergeben werden, um einen doppelten Zeiger auf die CERT_CHAIN_CONTEXT für eine Serverzertifikatkette zu erhalten, die während einer ausgehandelten SSL-Verbindung empfangen wurde. Der Client muss CertFreeCertificateContext für den zurückgegebenen PCCERT_CONTEXT-Zeiger aufrufen, der in den Puffer gefüllt ist.

WINHTTP_OPTION_SERVER_CERT_CONTEXT

Ruft den Serverzertifizierungskontext ab. WINHTTP_OPTION_SERVER_CERT_CONTEXT können übergeben werden, um einen duplizierten Zeiger auf cert context für ein Serverzertifikat zu erhalten, das während einer ausgehandelten SSL-Verbindung empfangen wurde. Der Client muss CertFreeCertificateContext für den zurückgegebenen PCCERT_CONTEXT-Zeiger aufrufen, der in den Puffer gefüllt ist.

WINHTTP_OPTION_SERVER_SPN_USED

Ruft den Serverprinzipalnamen ab, den WinHTTP während der Authentifizierung für SSPI bereitgestellt hat. Dieser Zeichenfolgenwert kann nach einem Authentifizierungsfehler an SspiPromptForCredentials übergeben werden.

WINHTTP_OPTION_SPN

Schließt die Serverportnummer ein oder entfernt sie, wenn der SPN (Dienstprinzipalname) für die Kerberos- oder Negotiate-Kerberos-Authentifizierung erstellt wird. Dieses Flag ist einer der folgenden Werte:

Begriff BESCHREIBUNG
WINHTTP_DISABLE_SPN_SERVER_PORT Entfernt die Serverportnummer.
WINHTTP_ENABLE_SPN_SERVER_PORT Enthält die Serverportnummer.

WINHTTP_OPTION_STREAM_ERROR_CODE

Diese Option kann für ein WinHttp-Anforderungshandle abgefragt werden und gibt den Fehlercode zurück, der durch einen RST_STREAM Frame angegeben wird, der in einem HTTP-Datenstrom empfangen wird.

WINHTTP_OPTION_TCP_FAST_OPEN

Aktiviert TCP Fast Open für die Verbindung.

WINHTTP_OPTION_TCP_KEEPALIVE

Diese Option kann für ein WinHttp-Sitzungshandle festgelegt werden, um das TCP-Keep-Alive-Verhalten für den zugrunde liegenden Socket zu aktivieren. Nimmt eine tcp_keepalive Struktur an.

WINHTTP_OPTION_TLS_FALSE_START

Aktiviert TLS False Start für die Verbindung.

WINHTTP_OPTION_TCP_PRIORITY_STATUS

Fragen Sie die angedeutete Priorität des TCP-Socketsatzes mit WINHTTP_OPTION_TCP_PRIORITY_HINT ab. Weitere Informationen finden Sie in der Dokumentation für SIO_SET_PRIORITY_HINT .

WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK

Diese Option kann für ein WinHttp-Sitzungshandle festgelegt werden, um zu steuern, ob das Fallback auf TLS 1.0 zulässig ist, wenn ein TLS-Handshakefehler mit einer neueren Protokollversion auftritt.

WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT

Nimmt ein Ereignis an, das festgelegt wird, wenn der letzte Rückruf für eine bestimmte Sitzung abgeschlossen wurde. Dieses Flag muss für ein Sitzungshandle verwendet werden. Das Ereignis kann erst geschlossen werden, nachdem es von WinHTTP festgelegt wurde.

WINHTTP_OPTION_UNSAFE_HEADER_PARSING

Diese Option ist für die interne Verwendung reserviert und sollte nicht aufgerufen werden.

WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET

Weist den Stapel an, einen WebSocket-Handshakeprozess mit WinHttpSendRequest zu starten. Diese Option akzeptiert keine Parameter.

WINHTTP_OPTION_URL

Ruft einen Zeichenfolgenwert ab, der die vollständige URL einer heruntergeladenen Ressource enthält. Wenn die ursprüngliche URL zusätzliche Daten enthält, z. B. Suchzeichenfolgen oder Anker, oder wenn der Aufruf umgeleitet wurde, unterscheidet sich die zurückgegebene URL von der ursprünglichen. Die Anwendung sollte einen Puffer übergeben, der in Bytes groß genug ist, um die zurückgegebene URL in breitem Zeichen zu enthalten.

WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS

Verwendet eine BOOL und kann nur ein Sitzungshandle festgelegt werden. Es wird nur nach unten an Handles weitergegeben, die aus dem Sitzungshandle erstellt wurden, nachdem die Option festgelegt wurde. Wenn TRUE, verursacht diese Option als letztes Mittel die Verwendung von globalen Serveranmeldeinformationen, die von WinInet gepusht wurden. Der Standardwert für diese Option ist FALSE. Diese Option erfordert den Registrierungsschlüssel HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Dieser Registrierungsschlüssel ist standardmäßig nicht vorhanden. Wenn sie festgelegt ist, sendet WinINet Anmeldeinformationen an WinHTTP. Wenn WinHttp eine Authentifizierungsanforderung erhält und keine Anmeldeinformationen für das aktuelle Handle festgelegt sind, werden die von WinINet bereitgestellten Anmeldeinformationen verwendet.

WINHTTP_OPTION_USE_SESSION_SCH_CRED

Ermöglicht das Festlegen einzelner Anmeldeinformationen, die standardmäßig für alle Endpunkte innerhalb der Sitzung verwendet werden sollen, anstatt über Standardanmeldeinformationen pro Endpunkt zu verfügen. Dies kann die Leistung verbessern, indem der Aufwand für die Anmeldeinformationsverwaltung reduziert wird. Beachten Sie, dass diese Standardanmeldeinformationen keine Auswirkungen haben, wenn ein Clientzertifikat explizit bereitgestellt wird.

WINHTTP_OPTION_USER_AGENT

Legt die Benutzer-Agent-Zeichenfolge für Handles fest, die von WinHttpOpen bereitgestellt und in nachfolgenden WinHttpSendRequest-Funktionen verwendet werden, sofern sie nicht von einem Header überschrieben wird, der von WinHttpAddRequestHeaders oder WinHttpSendRequest hinzugefügt wurde. Beim Abrufen eines Benutzer-Agents sollte die Anwendung einen Puffer übergeben, der in Bytes groß genug ist, um die zurückgegebene URL in Breite zu enthalten. Beim Festlegen des Benutzer-Agents entspricht die Puffergröße der Länge der Zeichenfolge in Zeichen plus dem NULL-Abschlusszeichen .

WINHTTP_OPTION_USERNAME

Legt eine Zeichenfolge fest, die den Benutzernamen enthält, oder ruft sie ab.

WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT

Legt in Millisekunden fest, wie lange WinHttpWebSocketClose warten soll, um den schließenden Handshake abzuschließen. Die Standardeinstellung beträgt 10 Sekunden.

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL

Legt das Intervall in Millisekunden fest, um ein Keep-Alive-Paket über die Verbindung zu senden. Das Standardintervall ist 30000 (30 Sekunden). Das Mindestintervall beträgt 15.000 (15 Sekunden). Die Verwendung von WinHttpSetOption zum Festlegen eines Werts niedriger als 15000 wird mit ERROR_INVALID_PARAMETER zurückgegeben.

Hinweis

Der Standardwert für WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL wird aus HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval gelesen. Wenn kein Wert festgelegt ist, wird der Standardwert 30000 verwendet. Es ist nicht möglich, ein niedrigeres Keepalive-Intervall als 15.000 Millisekunden zu haben.

WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE

Legt fest oder ruft einen DWORD-Wert ab, der die Größe des Empfangspuffers angibt, die für WebSocket-Verbindungen verwendet werden soll.

WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE

Legt einen DWORD-Wert fest, der die Größe des Sendepuffers angibt, die für WebSocket-Verbindungen verwendet werden soll, oder ruft diesen ab.

WINHTTP_OPTION_WORKER_THREAD_COUNT

Legt einen wert ohne Vorzeichen mit langer Ganzzahl fest, der die Anzahl der Arbeitsthreads angibt, die der Threadpool für asynchrone Vervollständigungen verwenden soll. Der Standardwert dieser Option ist 0(0), der angibt, dass die Anzahl der Arbeitsthreads gleich der Anzahl der CPUs im System ist. Diese Option kann nur für ein NULLHINTERNET-Handle festgelegt werden, bevor ein asynchroner Vorgang aufgetreten ist. Diese Option kann nur einmal festgelegt werden.

Gilt für: Windows 7 und höher; Windows Server 2008 R2 und höher.

WINHTTP_OPTION_WRITE_BUFFER_SIZE

Diese Option ist veraltet. es hat keine Auswirkung.

Bemerkungen

In der folgenden Tabelle sind die Optionsflags aufgeführt, indem angegeben wird, auf welche Handles sie reagieren können, ob sie abgefragt und festgelegt werden können, und den verwendeten Datentyp. Ein "X" gibt an, dass das Optionsflag für die Verwendung mit der Funktion oder dem Handle gültig ist, während ein "-" angibt, dass das Optionsflag ungültig ist.

Der Versuch, ein Optionsflag für eine Windows-Version festzulegen oder abzufragen, in der es nicht unterstützt wird, führt zu ERROR_WINHTTP_INVALID_OPTION.

Optionsflag und Datentyp Sitzungshandle Anforderungshandle Abfrageoption SET-Option Windows-Mindestversion
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, Version 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 Version 1903
WINHTTP_OPTION_CONNECTION_STATS_V1
TCP_INFO_v1
- X X - Windows 10 Version 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, Version 21H1
WINHTTP_OPTION_DISABLE_FEATURE
DWORD
- X - X -
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
BOOL
X - - X Windows 10 Version 1903
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
BOOL
X X - X Windows 10 Version 1809
WINHTTP_OPTION_ENABLE_FEATURE
DWORD
* * - X -
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
DWORD
X X - X Windows 10, Version 1607
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT
BOOL
X - - X Windows 10, Version 21H1
WINHTTP_OPTION_ENABLETRACING
DWORD
- - X X -
WINHTTP_OPTION_ENCODE_EXTRA
BOOL
X X - X Windows 10 Version 1803
WINHTTP_OPTION_EXPIRE_CONNECTION
Nicht zutreffend
- X - X Windows 10 Version 1903
WINHTTP_OPTION_EXTENDED_ERROR
DWORD
X X X - -
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
BOOL
X - - X Windows 10, Version 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 Version 1903
WINHTTP_OPTION_HTTP_PROTOCOL_USED
DWORD
- X X - Windows 10, Version 1607
WINHTTP_OPTION_HTTP_VERSION
HTTP_VERSION_INFO
X X X X -
WINHTTP_OPTION_HTTP2_KEEPALIVE
DWORD
X - - X Windows 10, Version 21H1
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
BOOL
X X - X Windows 10, Version 21H1
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
BOOL
- X - X Windows 10 Version 2004
WINHTTP_OPTION_IPV6_FAST_FALLBACK
BOOL
X - - X Windows 10 Version 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 Version 1903
WINHTTP_OPTION_REQUEST_TIMES
WINHTTP_REQUEST_TIMES
- X X - Windows 10 Version 1903
WINHTTP_OPTION_REQUIRE_STREAM_END
BOOL
X X - X Windows 10, Version 21H1
WINHTTP_OPTION_RESOLUTION_HOSTNAME
LPWSTR
- X - X Windows 10, Version 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 Version 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 Version 2004
WINHTTP_OPTION_SERVER_CERT_CONTEXT
CERT-KONTEXT
- 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, Version 21H1
WINHTTP_OPTION_TCP_FAST_OPEN
BOOL
X - - X Windows 10 Version 2004
WINHTTP_OPTION_TCP_KEEPALIVE
tcp_keepalive
X - - X Windows 10 Version 2004
WINHTTP_OPTION_TLS_FALSE_START
BOOL
X - - X Windows 10 Version 2004
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
BOOL
X - - X Windows 10, Version 21H1
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
HINTERNET
X - - X -
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
DWORD
- X - X -
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
Nicht zutreffend
- 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 -

Hinweis

Informationen zu Windows XP und Windows 2000 finden Sie unter Laufzeitanforderungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional mit SP3 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003, Windows 2000 Server mit SP3 [nur Desktop-Apps]
Verteilbare Komponente WinHTTP 5.0 und Internet Explorer 5.01 oder höher unter Windows XP und Windows 2000.
Header Winhttp.h

Siehe auch