Freigeben über


Optionskennzeichnungen

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

WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS

Der Standardwert ist FALSE. Wenn dieser Wert auf TRUE festgelegt ist, garantiert WinHTTP keinen Fortschritt, wenn Statusrü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 insbesondere nicht auf nachfolgende WinHTTP-Aufrufe warten zu müssen. Wenn diese Richtlinien nicht eingehalten werden, kann es zu einer negativen Leistungsbeeinträchtigung kommen oder eine potenzielle Anwendung hängen. Wenn diese Option auf vorgeschriebene Weise verwendet wird, kann diese Option die Leistung verbessern.

WINHTTP_OPTION_AUTOLOGON_POLICY

Legt einen wert vom Typ "Unsigned long integer" fest, der die Richtlinie für die 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 anhand des tatsächlichen Computernamens angeben. Es wird nicht wirksam, wenn Sie den Server durch "localhost" oder IP-Adresse angeben.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW Für alle Anforderungen wird eine authentifizierte Anmeldung mit den Standardanmeldeinformationen ausgeführt.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM Eine authentifizierte Anmeldung 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. Anschließend öffnet WinHttp beim ersten Senden einer Anforderung eine Reihe von Verbindungen parallel, anstatt nur eine einzige Verbindung zu öffnen. Dies kann die Leistung der nachfolgenden Anforderungen an dasselbe Ziel verbessern, was nicht den Aufwand für die Verbindungseinrichtung 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 anzugeben, bevor Sie die Anforderung erneut versuchen. Als Teil der Verarbeitung dieser Option ruft WinHttp CertDuplicateCertificateContext im vom Aufrufer bereitgestellten Zertifikatkontext auf, damit der Zertifikatkontext vom Aufrufer unabhängig 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. Es kann zu einer Zugriffsverletzung kommen.

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, aber nicht benötigt, kann die Anwendung diese Option angeben, um anzugeben, dass es kein Zertifikat hat. 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 benötigt, sendet er möglicherweise einen 403 HTTP-Statuscode als Antwort. 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 ist. Die Ausstellerliste in der Struktur enthält eine Liste der zulässigen Zertifizierungsstellen (Ca) vom Server. Die Clientanwendung kann die Zertifizierungsstelle-Liste filtern, um das Clientzertifikat für die SSL-Authentifizierung abzurufen.

Wenn der Server das Clientzertifikat anfordert, aber nicht benötigt, 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 Codeseite fest, die zum Verarbeiten der URL verwendet wird (d. a. Abfragezeichenfolge). Der Standardwert ist UTF8.

WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH

Legt einen wert vom Typ "Unsigned long integer" fest, der angibt, ob die Passport-Authentifizierung in der WinHTTP-Authentifizierung aktiviert ist. Der Wert kann eine der folgenden Sein:

Begriff BESCHREIBUNG
WINHTTP_DISABLE_PASSPORT_AUTH Die Microsoft Passport-Authentifizierung ist deaktiviert. Dies ist die Standardeinstellung.
WINHTTP_DISABLE_PASSPORT_KEYRING Die Passport-Taste ist deaktiviert. Dies ist die Standardeinstellung.
WINHTTP_ENABLE_PASSPORT_AUTH Die Passport-Authentifizierung ist aktiviert.
WINHTTP_ENABLE_PASSPORT_KEYRING Die Passport-Tastenkombination ist aktiviert.

WINHTTP_OPTION_CONNECT_RETRIES

Dient zum Festlegen oder Abrufen eines Werts ohne vorzeichenlose ganze Zahl, der die Anzahl der Male enthält, mit denenWinHTTP versucht, eine Verbindung mit einem Host herzustellen. Microsoft Windows HTTP Services (WinHTTP) versucht nur einmal pro IP-Adresse (Internet Protocol). Wenn Sie beispielsweise versuchen, eine Verbindung mit einem multihomed-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 gleicher Anzahl von 10 IP-Adressen nur einmal. Wenn nach der angegebenen Anzahl von Versuchen immer noch ein Verbindungsversuch fehlschlägt oder das Verbindungstimeout vorher abgelaufen ist, wird die Anforderung abgebrochen. Der Standardwert für WINHTTP_OPTION_CONNECT_RETRIES ist fünf Versuche.

WINHTTP_OPTION_CONNECT_TIMEOUT

Legt einen wert vom Typ "Unsigned long integer" 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 als dieser Timeoutwert dauert, wird die Anforderung abgebrochen. Das Standardtimeout beträgt 60 Sekunden. Wenn Sie versuchen, eine Verbindung mit mehreren IP-Adressen für einen einzelnen Host (ein mehrhomed-Host) herzustellen, gilt das Timeoutlimit für jede einzelne Verbindung.

WINHTTP_OPTION_CONNECTION_INFO

Ruft die Quell- und Ziel-IP-Adresse und 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 mit einer GUID zugeordnet ist. Dies ermöglicht eine benutzerdefinierte Kontrolle darüber, welche Gruppen von Verbindungen mit der option WINHTTP_OPTION_MATCH_CONNECTION_GUID verwendet werden.

WINHTTP_OPTION_CONNECTION_STATS_V0

Retreives the TCP_INFO_v0 struct for the underlying connection used by the request. Die zurückgegebene Struktur kann Statistiken von vorherigen Anforderungen enthalten, die über dieselbe Verbindung gesendet wurden.

Hinweis

Diese Option wurde durch WINHTTP_OPTION_CONNECTION_STATS_V1 ersetzt.

WINHTTP_OPTION_CONNECTION_STATS_V1

Retreives the TCP_INFO_v1 struct for the underlying connection used by the request. Die zurückgegebene Struktur kann Statistiken von vorherigen Anforderungen enthalten, die über dieselbe Verbindung gesendet wurden.

WINHTTP_OPTION_CONTEXT_VALUE

Dient zum Festlegen oder Abrufen eines DWORD_PTR , das einen Zeiger auf den Kontextwert enthält, der diesem HINTERNET-Handle zugeordnet ist. Der im Puffer gespeicherte Wert wird verwendet, und dem options flag WINHTTP_OPTION_CONTEXT_VALUE wird ein neuer Wert zugewiesen.

WINHTTP_OPTION_DECOMPRESSION

Legt ein DWORD von Flags fest, die bestimmen, ob WinHTTP Antworttexte automatisch mit komprimierten Inhaltscodierungen dekomprimiert. WinHTTP legt auch einen geeigneten Accept-Encoding Header fest, der alle vom Aufrufer bereitgestellten Überschreibungen überschreibt. Unterstützte Werte sind:

Begriff BESCHREIBUNG
WINHTTP_DECOMPRESSION_FLAG_GZIP Dekomprimieren Sie Die Inhaltscodierung: Gzip-Antworten.
WINHTTP_DECOMPRESSION_FLAG_DEFLATE Dekomprimieren Sie die Inhaltscodierung: Antworten zurückstellen.
WINHTTP_DECOMPRESSION_FLAG_ALL Dekomprimieren Sie Antworten mit jeder unterstützten Inhaltscodierung.

Standardmäßig liefert WinHTTP komprimierte Antworten an den Aufrufer, der nicht geändert wurde.

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 wurde.

WINHTTP_OPTION_DISABLE_FEATURE

Legt einen wert vom Typ "Unsigned long integer" fest, der angibt, welche Features mit mindestens einem der folgenden Flags deaktiviert sind. Beachten Sie, dass dieses Feature nur auf Anforderungshandles 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. Die Keep-Alive-Semantik ist für MSN, NTLM und andere Authentifizierungstypen erforderlich.
WINHTTP_DISABLE_REDIRECTS Die automatische Umleitung ist beim Senden von Anforderungen mit WinHttpSendRequest deaktiviert. Wenn die automatische Umleitung deaktiviert ist, muss eine Anwendung eine Rückruffunktion registrieren, damit die Passport-Authentifizierung erfolgreich ausgeführt werden kann.

WINHTTP_OPTION_DISABLE_GLOBAL_POOLING

Deaktiviert das globale, sitzungsübergreifende Pooling. Dies wird empfohlen, da das globale, sitzungsübergreifende Pooling aus Kompatibilitätsgründen standardmäßig vom Legacyverhalten unterstützt wird. Dies wirkt sich auf die spätere Einstellung der maximalen Verbindungen manuell aus.

WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES

Deaktiviert eine oder mehrere der folgenden Proxyauthentifizierungsmethoden in der WinHTTP-Sitzung, indem alle OR anwendbaren Optionen bereitgestellt werden. Dies sind alle Schemas, mit Ausnahme von WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE, was die Verwendung des lokalen Computerkontos beim Senden von Anforderungen an eine Loopback- oder lokale Adresse erzwingt. Dadurch wird verhindert, dass Systemanmeldeinformationen an lokale HTTP-Proxys verloren gehen.

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 Aushandlungsauthentifizierungsschema.
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 erneut versucht, wenn die anfängliche Protokollverhandlung fehlschlägt.

WINHTTP_OPTION_DISABLE_STREAM_QUEUE

Ermöglicht es neuen Anforderungen, eine zusätzliche HTTP/2-Verbindung zu öffnen, wenn der maximale gleichzeitige Datenstromgrenzwert erreicht ist, anstatt auf den nächsten verfügbaren Datenstrom für eine vorhandene Verbindung zu warten.

WINHTTP_OPTION_ENABLE_FEATURE

Legt einen wert vom Typ "Unsigned long integer" 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 vorübergehend für die Dauer der SSL-Zertifikatauthentifizierungsvorgänge 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 den 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.
None (0x0) Beschränkt die Anforderung auf HTTP/1.1 und früher.

Ältere Versionen 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 zurzeit aktiviert ist. Diese Option kann nur für ein NULLHINTERNET-Handle festgelegt werden. Siehe auch "Sammeln von WinHTTP-Ablaufverfolgungen".

WINHTTP_OPTION_ENCODE_EXTRA

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

Alternativ können Sie vor dem Aufrufen von WinHttp die Prozentcodierung ausführen.

WINHTTP_OPTION_EXPIRE_CONNECTION

Diese Option kann nur für ein Anforderungshandle festgelegt werden, das noch aktiv ist (Senden oder Empfangen). Wenn Sie diese Option festlegen, wird WinHttp aufgefordert, die Bereitstellung von Anforderungen für die Verbindung zu beenden, die mit dem übergebenen Anforderungshandle verknüpft ist. Die Verbindung wird geschlossen, nachdem die Anforderungshandle diese Option aufgerufen wird, mit der sie aufgerufen wird. Diese Option verwendet keine Parameter.

WINHTTP_OPTION_EXTENDED_ERROR

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

WINHTTP_OPTION_FEATURE_SUPPORTED

Überprüfen Sie, ob eine bereitgestellte Optionskennzeichnung von dieser WinHTTP-Version unterstützt wird.

WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION

Wenn WinHttp standardmäßig eine Anforderung sendet, wenn es keine verfügbaren Verbindungen für die Anforderung gibt, versucht WinHttp, eine neue Verbindung herzustellen, und die Anforderung wird an diese neue Verbindung gebunden. Wenn Sie diese Option festlegen, wird stattdessen eine solche Anforderung für die erste Verbindung bereitgestellt, die verfügbar wird, und nicht unbedingt 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 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 Authentifizierungsabfrage erhält und keine Anmeldeinformationen für das aktuelle Handle festgelegt sind, werden die von WinINet bereitgestellten Anmeldeinformationen verwendet. Um zusätzlich zu Proxyanmeldeinformationen 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 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 Authentifizierungsabfrage erhält und keine Anmeldeinformationen für das aktuelle Handle festgelegt sind, werden die von WinINet bereitgestellten Anmeldeinformationen verwendet. Um zusätzlich zu Proxyanmeldeinformationen Serveranmeldeinformationen freizugeben, müssen Benutzer WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS festlegen.

WINHTTP_OPTION_HANDLE_TYPE

Ruft einen unsignierten langen ganzzahligen Wert ab, der den Typ des übergebenen HINTERNET-Handles enthält. Der Rückgabewert kann eine der folgenden Sein:

Begriff BESCHREIBUNG
WINHTTP_HANDLE_TYPE_CONNECT Der Handle ist ein Verbindungsziehpunkt.
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 Protokollversionen als die von WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL für die Anforderung verwendet werden.

WINHTTP_OPTION_HTTP_PROTOCOL_USED

Ruft ein DWORD zurück, 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 ältere HTTP-Version deklariert, oder ruft diese ab. Dies ist eine prozessweite Option; verwenden Sie NULL für den Handle.

Hinweis

Diese Struktur ist für HTTP/1.0 und HTTP/1.1 gültig. Informationen zu modernen HTTP-Versionen finden Sie unter WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL und WINHTTP_OPTION_HTTP_PROTOCOL_USED.

WINHTTP_OPTION_HTTP2_KEEPALIVE

Diese Option kann für ein Sitzungshandle festgelegt werden, damit WinHttp HTTP/2-PING-Frames als Keepalive-Mechanismus verwendet. Aufrufer geben ein Timeout in Millisekunden an, und nachdem keine Aktivität für eine Verbindung für diesen Timeoutzeitraum vorhanden ist, beginnt WinHttp mit dem Senden von HTTP/2-PING-Frames. Aufrufer 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 zu steuern, wie WinHttp sich verhält, wenn eine HTTP/2-Antwort einen Header "Transfer-Encoding" enthält. In diesem 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-Datenstroms und den Schwellenwert für das Senden von Fensteraktualisierungen 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 das anfängliche RTT in Millisekunden, die von msquic verwendet werden.

WINHTTP_OPTION_HTTP3_KEEPALIVE

Aktiviert die 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 im 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 den schnellen Fallback von IPv6 (Happier Eyeballs) für die Verbindung. Dieses Verhalten ähnelt dem in RFC 6555 beschriebenen Happy Eyeballs-Verhalten zur Verbesserung der Verbindungszeiten in Netzwerken, in denen IPv6 unzuverlässig ist.

  • Wenn sowohl IPv6- als auch IPv4-Adressen für einen bestimmten Host aufgelöst werden, beginnt WinHttp mit dem Herstellen einer Verbindung mit der ersten aufgelösten IPv6-Adresse mit einem kurzen Timeout (300 ms).
  • Sollte diese Verbindung fehlschlagen, versucht WinHttp, eine Verbindung mit der ersten aufgelösten IPv4-Adresse mit dem Standardtimeout herzustellen.
  • Sollte die zweite Verbindung fehlschlagen, wiederholt WinHttp die erste aufgelöste IPv6-Adresse mit dem Standardtimeout.
  • Wenn die dritte Verbindung fehlschlägt, wird WinHttp auf das Standardverhalten für alle verbleibenden Adressen zurückgesetzt, wobei versucht wird, eine Verbindung mit jedem mit dem Standardtimeout herzustellen, bis eine Verbindung hergestellt wird oder keine Adressen verbleiben.

WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE

Ruft ab, ob eine Proxy Return Connect-Antwort abgerufen werden kann.

WINHTTP_OPTION_MATCH_CONNECTION_GUID

Übernimmt eine WINHTTP_MATCH_CONNECTION_GUID-Anweisung , WinHTTP anzuweisen, die Anforderung für eine übereinstimmende Verbindung zu bedienen. 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, die nicht mit einer GUID gekennzeichnet sind, verwendet werden.

WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER

Legt fest oder ruft einen nicht signierten langen ganzzahligen Wert, der die maximale Anzahl der zulässigen Verbindungen pro HTTP/1.0-Server enthält. 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 fest oder ruft einen nicht signierten langen ganzzahligen Wert ab, der die maximale Anzahl der pro Server zulässigen Verbindungen enthält. Der Standardwert ist INFINITE.

Wenn diese Option auf Null 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 Statuscodeantworten von Informational 100-199, die ignoriert werden, bevor der endgültige Statuscode an den WinHTTP-Client zurückgegeben wird. Informational 100-199 status codes can be sent by the server before the final status code, and are described in the specification for HTTP/1.1 (for more information, see 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 Datenmenge, die aus Antworten entwässert wurde, 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 Byte. Diese Bindung schützt den Client vor einem nicht autorisierten Server, der versucht, den Client zu hindern, indem eine Antwort mit einer unendlichen Menge von 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 Statuscode von 401 reagiert hat. Eine Anwendung sollte in Bytes eine Puffergröße ü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 Cobranding-Grafik enthält, die vom Passport-Anmeldeserver bereitgestellt wird. Diese Option sollte sofort abgerufen werden, nachdem der Anmeldeserver mit einem Statuscode von 401 reagiert hat. Eine Anwendung sollte in Bytes eine Puffergröße ü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 bei jeder Passport-Anmeldung 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 fest oder ruft einen Zeichenfolgenwert ab, der das Kennwort enthält, das einem Anforderungshandle zugeordnet ist.

WINHTTP_OPTION_PROXY

Dient zum Festlegen oder Abrufen einer WINHTTP_PROXY_INFO Struktur, die die Proxydaten in einem vorhandenen Sitzungshandle oder Anforderungshandle enthält. Beim Abrufen von Proxydaten muss eine Anwendung die in dieser Struktur enthaltenen Zeichenfolgen "lpszProxy" und "lpszProxyBypass " freigeben (wenn sie nicht NULL sind) mithilfe der GlobalFree-Funktion . Eine Anwendung kann die globalen Proxydaten (den Standardproxy) abfragen, indem ein NULL-Handle übergeben wird.

WINHTTP_OPTION_PROXY_PASSWORD

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

WINHTTP_OPTION_PROXY_SPN_USED

Ruft den Proxyserverprinzipalnamen ab, den WinHTTP während der Authentifizierung an SSPI bereitgestellt hat. Dieser Zeichenfolgenwert wird verwendet, um SspiPromptForCredentials nach einem Authentifizierungsfehler zu übergeben.

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 Wirkung.

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 fest oder ruft einen nicht signierten langen ganzzahligen Wert ab, der den Timeoutwert in Millisekunden enthält, um zu warten, bis alle Antwortheader an eine Anforderung empfangen werden. Wenn WinHTTP nicht alle Header innerhalb dieses Timeoutzeitraums empfängt, wird die Anforderung abgebrochen. Der Standardtimeoutwert beträgt 90 Sekunden.

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

WINHTTP_OPTION_RECEIVE_TIMEOUT

Legt fest oder ruft einen unsignierten langen ganzzahligen Wert ab, der den Timeoutwert in Millisekunden enthält, um eine teilweise Antwort auf eine Anforderung zu erhalten oder einige Daten zu lesen. Wenn die Antwort länger als dieser Timeoutwert dauert, wird die Anforderung abgebrochen. Der Standard-Timeoutwert beträgt 30 Sekunden.

WINHTTP_OPTION_REDIRECT_POLICY

Legt das Verhalten von WinHTTP bezüglich der Behandlung eines 30x-HTTP-Umleitungsstatuscodes fest. Diese Option kann für eine Sitzung oder ein 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 gefolgt, außer denen, die von einer sicheren (https)-URL zu einer unsicheren (http)-URL stammen. Dies ist die Standardeinstellung.
WINHTTP_OPTION_REDIRECT_POLICY_NEVER Umleitungen werden nie befolgt. Der 30x-Status wird an die Anwendung zurückgegeben.

WINHTTP_OPTION_REJECT_USERPWD_IN_URL

Lehnt URLs ab, die einen Benutzernamen und ein Kennwort enthalten. Mit dieser Option werden auch URLs abgelehnt, die die Semantik "username:password " 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. Diese Option ist standardmäßig deaktiviert.

WINHTTP_OPTION_REQUEST_ANNOTATION

Aktiviert 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 benutzerdefinierten Logik zu identifizieren, die der Aufrufer nützlich findet.

WINHTTP_OPTION_REQUEST_PRIORITY

Diese Option ist veraltet; es hat keine Wirkung.

WINHTTP_OPTION_REQUEST_STATS

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

WINHTTP_OPTION_REQUEST_TIMES

Gibt Die Anzeigedauerinformationen für die Anforderung erneut an. Eine Liste der verfügbaren Anzeigedauern finden Sie unter WINHTTP_REQUEST_TIMES.

WINHTTP_OPTION_REQUIRE_STREAM_END

Diese Option weist WinHttp an, antwortheader "Content-Length" zu ignorieren und den Empfang in einem Datenstrom fortzusetzen, bis das END_STREAM Flag empfangen wird.

WINHTTP_OPTION_RESOLUTION_HOSTNAME

Diese Option kann für ein WinHttp-Anforderungshandle festgelegt werden, bevor sie gesendet wurde. Bei Festlegung verwendet WinHttp die vom Aufrufer bereitgestellte Zeichenfolge als Hostname für die DNS-Auflösung.

WINHTTP_OPTION_RESOLVE_TIMEOUT

Legt fest oder ruft einen nicht signierten langen ganzzahligen Wert, der den Timeoutwert in Millisekunden enthält, um einen Hostnamen aufzulösen. Der Standardtimeoutwert ist INFINITE. Wenn ein nicht standardmäßiger Wert angegeben ist, liegt ein Aufwand für eine Threaderstellung pro Namensauflösung vor.

WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT

Stellt alle Threadwechsel beim Erstellen der Serverzertifikatkette zurück, wodurch stattdessen die Verwendung des Prozesstokens erzwungen wird.

WINHTTP_OPTION_SECURE_PROTOCOLS

Legt einen wert vom Typ "Unsigned long integer" fest, der angibt, welche Secure (HTTPS)-Protokolle akzeptabel sind. Der Standardwert für diese Einstellung variiert je nach Betriebssystemversion und kann durch installierte Updates beeinträchtigt werden.

  • Windows 11. Standardmäßig sind nur TLS1.2 und TLS1.3 aktiviert.
  • 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 Transport Layer Security (TLS) 1.0 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 die Unterstützung für neuere Protokolle aktivieren 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 sicheren Protokolle verwendet werden sollen, wenn die Option WINHTTP_OPTION_SECURE_PROTOCOLS nicht festgelegt ist.

Von Bedeutung

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

Wenn eine Anwendung WinHttpSetOption(WINHTTP_OPTION_SECURE_PROTOCOLS) nicht aufruft, überprüft das System den DefaultSecureProtocols Registrierungseintrag und setzt, falls vorhanden, das vorhandene Betriebssystem standardmäßig mit den im DefaultSecureProtocols Registrierungseintrag angegebenen Protokollen außer Kraft. Die winHTTP-angegebenen Protokolle können von den Konfigurationseinstellungen für einmaligen Kanal (Secure Channel, Schannel) überstimmt werden, die Protokolle deaktivieren können.

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 auch dem Wow6432Node Pfad 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 SSL 2.0 standardmäßig aktivieren
0x00000020 SSL 3.0 standardmäßig aktivieren
0x00000080 TLS 1.0 standardmäßig aktivieren
0x00000200 TLS 1.1 standardmäßig aktivieren
0x00000800 TLS 1.2 standardmäßig aktivieren
0x00002000 Standardmäßiges Aktivieren von TLS 1.3

Wenn Sie beispielsweise die Standardwerte für WINHTTP_OPTION_SECURE_PROTOCOLS überschreiben möchten, um TLS 1.1 und TLS 1.2 anzugeben. 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 Programmiermodus) hinzu, und der resultierende Registrierungswert wäre 0x00000A00.

WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT

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

WINHTTP_OPTION_SECURITY_FLAGS

Dient zum Festlegen oder Abrufen eines werts vom Typ "Unsigned long integer", der die Sicherheitskennzeichnungen für ein Handle enthält. Dabei kann es sich um eine Kombination dieser Werte handeln:

Begriff BESCHREIBUNG
SECURITY_FLAG_IGNORE_CERT_CN_INVALID Ermöglicht einen ungültigen gemeinsamen Namen in einem Zertifikat; d. h. der von der Anwendung angegebene Servername stimmt nicht mit dem gemeinsamen 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 Ermöglicht ein ungültiges Zertifikatdatum, d. h. ein abgelaufenes oder noch nicht effektives Zertifikat. Wenn dieses Kennzeichen festgelegt ist, empfängt die Anwendung keinen WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID Rückruf.
SECURITY_FLAG_IGNORE_UNKNOWN_CA Ermöglicht eine ungültige Zertifizierungsstelle. Wenn dieses Kennzeichen festgelegt ist, empfängt die Anwendung keinen WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA Rückruf.
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE Ermöglicht das Herstellen der Identität eines Servers mit einem Nicht-Server-Zertifikat (z. B. einem Clientzertifikat).
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE Ermöglicht es, eine schwache Signatur zu ignorieren.
Dieses Kennzeichen 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 die mittlere Verschlüsselung (56-Bit). 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 schwache Verschlüsselung (40-Bit). Dies wird nur in einem Aufruf von WinHttpQueryOption zurückgegeben.

WINHTTP_OPTION_SECURITY_INFO

Retreives the SChannel connection and cipher information for a request.

WINHTTP_OPTION_SECURITY_KEY_BITNESS

Ruft einen nicht signierten ganzzahligen Wert ab, der die Verschlüsselungsstärke des Verschlüsselungsschlüssels enthält. Eine größere Zahl gibt eine stärkere Verschlüsselung der Verschlüsselungsstärke an.

WINHTTP_OPTION_SEND_TIMEOUT

Legt fest oder ruft einen nicht signierten langen ganzzahligen Wert, der den Timeoutwert in Millisekunden enthält, um eine Anforderung zu senden oder einige 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 von dieser Option abgerufen werden, nachdem eine SSL-Verbindung hergestellt wurde.

Hinweis

Wenn Sie diese Option übergeben und einen NULL-Wert für lpBuffer an WinHttpQueryOption übergeben, werden ERROR_INSUFFICIENT_BUFFER und die erforderliche Bytegröße für den Puffer im lpdwBufferLength-Parameter zurückgegeben. Dieser zurückgegebene Puffergrößenwert kann in einem nachfolgenden Aufruf übergeben werden, um das Kanalbindungstoken abzufragen. Diese Schritte sind beim Behandeln von 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 duplizierten 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 den 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 an SSPI bereitgestellt hat. Dieser Zeichenfolgenwert kann nach einem Authentifizierungsfehler an SspiPromptForCredentials übergeben werden.

WINHTTP_OPTION_SPN

Enthält oder entfernt die Serverportnummer, wenn der SPN (Dienstprinzipalname) für Kerberos- oder Aushandeln der Kerberos-Authentifizierung erstellt wird. Dieses Kennzeichen 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 auf einem WinHttp-Anforderungshandle abgefragt werden und gibt den fehlercode zurück, der von einem RST_STREAM Frame angegeben wird, der in einem HTTP-Stream empfangen wurde.

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. Übernimmt eine tcp_keepalive Struktur.

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-Sockets ab, der mit WINHTTP_OPTION_TCP_PRIORITY_HINT festgelegt wurde. Weitere Informationen finden Sie in der Dokumentation zu SIO_SET_PRIORITY_HINT .

WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK

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

WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT

Übernimmt ein Ereignis, 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-Handshake-Prozess 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 vom Original. 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

Akzeptiert ein BOOL und kann nur ein Sitzungshandle festgelegt werden. Sie wird nur an Handles weitergegeben, die aus dem Sitzungshandle erstellt wurden, nachdem die Option festgelegt wurde. Wenn WAHR, verursacht diese Option als letztes Mittel die Verwendung von globalen Serveranmeldeinformationen, die von WinInet gedrückt wurden. Der Standardwert für diese Option ist FALSE. Für diese Option ist der Registrierungsschlüssel HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings erforderlich! ShareCredsWithWinHttp. Dieser Registrierungsschlüssel ist standardmäßig nicht vorhanden. Wenn sie festgelegt ist, sendet WinINet Anmeldeinformationen an WinHTTP. Wenn WinHttp eine Authentifizierungsabfrage 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 einer einzelnen Anmeldeinformationen, die standardmäßig für alle Endpunkte innerhalb der Sitzung verwendet werden sollen, anstatt standardanmeldeinformationen pro Endpunkt zu verwenden. Dies kann die Leistung verbessern, indem der Aufwand für die Verwaltung von Anmeldeinformationen verringert 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 außer Kraft gesetzt wird, der von WinHttpAddRequestHeaders oder WinHttpSendRequest hinzugefügt wird. Beim Abrufen eines Benutzer-Agents sollte die Anwendung einen Puffer übergeben, der in Bytes groß genug ist, um die zurückgegebene URL in breitem Zeichen zu halten. Beim Festlegen des Benutzer-Agents ist die Puffergröße die Länge der Zeichenfolge in Zeichen sowie der NULL-Terminator .

WINHTTP_OPTION_USERNAME

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

WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT

Legt die Zeit in Millisekunden fest, die WinHttpWebSocketClose warten soll, um den schließenden Handshake abzuschließen. Der Standardwert ist 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 15000 (15 Sekunden). Die Verwendung von WinHttpSetOption zum Festlegen eines Werts unter 15000 wird mit ERROR_INVALID_PARAMETER zurückgegeben.

Hinweis

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

WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE

Legt fest oder ruft ein DWORD, das die Empfangenpuffergröße angibt, die für WebSocket-Verbindungen verwendet werden soll.

WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE

Legt fest oder ruft ein DWORD, das die Sendepuffergröße angibt, die für WebSocket-Verbindungen verwendet werden soll.

WINHTTP_OPTION_WORKER_THREAD_COUNT

Legt einen wert vom Typ "Unsigned long integer" fest, der die Anzahl der Workerthreads angibt, die der Threadpool für asynchrone Fertigstellungen verwenden soll. Der Standardwert dieser Option ist Null, wodurch angegeben wird, dass die Anzahl der Arbeitsthreads der Anzahl der CPUs im System entspricht. 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 Wirkung.

Bemerkungen

In der folgenden Tabelle sind die Optionskennzeichnungen 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 Optionskennzeichnung für die Verwendung mit der Funktion oder dem Handle gültig ist, während ein "-" angibt, dass das Optionsflagge ungültig ist.

Wenn Sie versuchen, ein Optionskennzeichnungszeichen für eine Windows-Version festzulegen oder abzufragen, in der sie nicht unterstützt wird, wird ERROR_WINHTTP_INVALID_OPTION.

Option flag, and data type Sitzungshandle Anforderungshandle Abfrageoption SET-Option Mindestversion von 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 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 verfügbar
- 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 verfügbar
- 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 Run-Time Anforderungen.

Anforderungen

Anforderung Wert
Mindest unterstützter Client Windows XP, Windows 2000 Professional mit SP3 [nur Desktop-Apps]
Unterstützter Mindestserver Windows Server 2003, Windows 2000 Server mit SP3 [nur Desktop-Apps]
Verteilbar WinHTTP 5.0 und Internet Explorer 5.01 oder höher unter Windows XP und Windows 2000.
Kopfzeile Winhttp.h

Siehe auch