次の方法で共有


オプション フラグ

WinHttpQueryOption と WinHttpSetOption では、次のオプション フラグがサポートされています。

WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS

既定値は FALSE です。 TRUE に設定すると、クライアント アプリケーションによって状態コールバックがブロックされた場合、WinHTTP は進行状況を保証しません。

クライアント アプリケーションは、ブロックせずにコールバック内で最小限の操作を実行し、できるだけ早く戻るように特別な注意を払う必要があり、特に後続の WinHTTP 呼び出しを待つことはできません。 これらのガイドラインに従っていない場合は、パフォーマンスに悪影響を与えたり、アプリケーションがハングしたりする可能性があります。 所定の方法で使用すると、このオプションによってパフォーマンスが向上する可能性があります。

WINHTTP_OPTION_AUTOLOGON_POLICY

次のいずれかの値を持つ 自動ログオン ポリシー を指定する符号なし long 整数値を設定します。

任期 説明
WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH 既定の資格情報は使用されません。 このフラグは、実際のマシン名でサーバーを指定した場合にのみ有効になります。 "localhost" または IP アドレスでサーバーを指定した場合、有効になりません。
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW 既定の資格情報を使用して認証されたログオンが、すべての要求に対して実行されます。
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM 既定の資格情報を使用して認証されたログオンは、ローカル イントラネット上の要求に対してのみ実行されます。

WINHTTP_OPTION_BACKGROUND_CONNECTIONS

セッション ハンドルでこのオプションを設定する場合は、開く接続の数を渡す必要があります。 次に、1 つの接続のみを開くのではなく、最初に要求を送信すると、WinHttp は複数の接続を並列で開きます。 これにより、同じ宛先に対する後続の要求のパフォーマンスが向上します。これにより、接続確立のオーバーヘッドは発生しません。

WINHTTP_OPTION_CALLBACK

WinHttpSetStatusCallback を使用してコールバック関数セットへのポインターを取得します。

WINHTTP_OPTION_CLIENT_CERT_CONTEXT

クライアント証明書コンテキストを設定します。 アプリケーションが ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDEDを受信した場合、要求を再試行する前に 、WinHttpSetOption を呼び出して証明書を提供する必要があります。 このオプションの処理の一環として、WinHttp は、呼び出し元が指定した証明書コンテキストで CertDuplicateCertificateContext を呼び出し、証明書コンテキストを呼び出し元が個別に解放できるようにします。

アプリケーションは、証明書コンテキストが取得された証明書ストアの CertCloseStore の呼び出しで、CERT_CLOSE_STORE_FORCE_FLAG フラグを使用して証明書ストアを閉じようとしないでください。 アクセス違反が発生する可能性があります。

サーバーがクライアント証明書、 WinHttpSendRequest、または WinHttpReceiveResponse を要求すると、 ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED エラーが返されます。 サーバーが証明書を要求しても不要な場合、アプリケーションはこのオプションを指定して、証明書がないことを示すことができます。 サーバーは、別の認証スキームを選択することも、サーバーへの匿名アクセスを許可することもできます。 アプリケーションは、次のコード例に示すように、WinHttpSetOptionlpBuffer パラメーターにWINHTTP_NO_CLIENT_CERT_CONTEXT マクロを提供します。

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

サーバーでクライアント証明書が必要な場合は、応答として 403 HTTP 状態コードを送信できます。 詳細については、 WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST オプションを参照してください。

WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST

WinHttpSendRequest または WinHttpReceiveResponse からのエラーがERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDEDされたときに、SecPkgContext_IssuerListInfoEx構造体を取得します。 構造体の発行者リストには、サーバーから受け入れ可能な証明機関 (CA) の一覧が含まれています。 クライアント アプリケーションは、CA リストをフィルター処理して、SSL 認証用のクライアント証明書を取得できます。

または、サーバーがクライアント証明書を要求しても不要な場合、アプリケーションは WINHTTP_OPTION_CLIENT_CERT_CONTEXT オプションを使用して WinHttpSetOption を呼び出すことができます。 詳細については、 WINHTTP_OPTION_CLIENT_CERT_CONTEXT オプションを参照してください。

WINHTTP_OPTION_CODEPAGE

URL の処理に使用する コード ページ (つまり、クエリ文字列) を設定します。 既定値は UTF8 です。

WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH

WinHTTP 認証での Passport 認証が有効かどうかを指定する符号なし long 整数値を設定します。 値には、次のいずれかを指定できます。

任期 説明
WINHTTP_DISABLE_PASSPORT_AUTH Microsoft Passport 認証が無効になっています。 これが既定値です。
WINHTTP_DISABLE_PASSPORT_KEYRING Passport キーリングが無効になっています。 これが既定値です。
WINHTTP_ENABLE_PASSPORT_AUTH Passport 認証が有効になっています。
WINHTTP_ENABLE_PASSPORT_KEYRING Passport キーリングが有効になっています。

WINHTTP_OPTION_CONNECT_RETRIES

WinHTTP がホストへの接続を試行する回数を含む符号なし long 整数値を設定または取得します。 Microsoft Windows HTTP Services (WinHTTP) は、インターネット プロトコル (IP) アドレスごとに 1 回だけ試行されます。 たとえば、10 個の IP アドレスを持つマルチホーム ホストに接続しようとして 、WINHTTP_OPTION_CONNECT_RETRIES が 7 に設定されている場合、WinHTTP は最初の 7 つの IP アドレスへの接続のみを試みます。 同じ 10 個の IP アドレスセットを指定すると、 WINHTTP_OPTION_CONNECT_RETRIES が 20 に設定されている場合、WinHTTP は 10 個の各 IP アドレスを 1 回だけ試行します。 指定した試行回数が経過しても接続試行が失敗した場合、またはその前に接続タイムアウトが切れた場合、要求は取り消されます。 WINHTTP_OPTION_CONNECT_RETRIESの既定値は 5 回です。

WINHTTP_OPTION_CONNECT_TIMEOUT

タイムアウト値を含む符号なし long 整数値をミリ秒単位で設定または取得します。 このオプションを無限 (0xFFFFFFFF) に設定すると、このタイマーが無効になります。

TCP 接続要求にこのタイムアウト値より長い時間がかかる場合、要求は取り消されます。 既定のタイムアウトは 60 秒です。 1 つのホスト (マルチホーム ホスト) に対して複数の IP アドレスに接続しようとすると、タイムアウト制限は個々の接続に対して行われます。

WINHTTP_OPTION_CONNECTION_INFO

WinHttpReceiveResponse が返されたときに応答を生成した要求の送信元と送信先の IP アドレスとポートを取得します。 アプリケーションは、WINHTTP_OPTION_CONNECTION_INFO オプションを使用して WinHttpQueryOption を呼び出し、lpBuffer パラメーターにWINHTTP_CONNECTION_INFO構造体を提供します。 詳細については、「WINHTTP_CONNECTION_INFO」 参照してください。

適用対象: WINDOWS XP SP2 以降。Windows 2003 SP1 以降。

WINHTTP_OPTION_CONNECTION_GUID

WinHTTP 要求ハンドルに関連付けられている接続を GUID でマークします。 これにより、 WINHTTP_OPTION_MATCH_CONNECTION_GUID オプションを使用して接続のグループを使用する要求をカスタム制御できます。

WINHTTP_OPTION_CONNECTION_STATS_V0

要求によって使用される基になる接続の TCP_INFO_v0 構造体を再処理します。 返される構造体には、同じ接続経由で送信された以前の要求からの統計が含まれている場合があります。

このオプションは、 WINHTTP_OPTION_CONNECTION_STATS_V1に置き換わりました。

WINHTTP_OPTION_CONNECTION_STATS_V1

要求によって使用される基になる接続の TCP_INFO_v1 構造体を再処理します。 返される構造体には、同じ接続経由で送信された以前の要求からの統計が含まれている場合があります。

WINHTTP_OPTION_CONTEXT_VALUE

この HINTERNET ハンドルに関連付けられているコンテキスト値へのポインターを含むDWORD_PTRを設定または取得します。 バッファーに格納されている値が使用され、 WINHTTP_OPTION_CONTEXT_VALUE オプション フラグに新しい値が割り当てられます。

WINHTTP_OPTION_DECOMPRESSION

WinHTTP が圧縮されたコンテンツ エンコードを使用して応答本文を自動的に展開するかどうかを決定するフラグの DWORD を設定します。 また、WinHTTP は適切な Accept-Encoding ヘッダーを設定し、呼び出し元によって提供されたヘッダーをオーバーライドします。 サポートされる値は次のとおりです。

任期 説明
WINHTTP_DECOMPRESSION_FLAG_GZIP コンテンツ エンコードの展開: gzip 応答。
WINHTTP_DECOMPRESSION_FLAG_DEFLATE コンテンツ エンコードの展開: 応答をデフレートします。
WINHTTP_DECOMPRESSION_FLAG_ALL サポートされているコンテンツ エンコードを使用して応答を展開します。

既定では、WinHTTP は、変更されていない呼び出し元に圧縮された応答を配信します。

WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING

WinHttp セッション ハンドルでこのオプションを設定すると、サーバー証明書チェーンが構築されているかどうかを有効または無効にすることができます。

WINHTTP_OPTION_DISABLE_FEATURE

次の 1 つ以上のフラグを使用して無効にする機能を指定する符号なし long 整数値を設定します。 この機能は、要求ハンドルが WinHttpOpenRequest で作成された後、および要求が WinHttpSendRequest で送信される前に、要求ハンドルでのみ WinHttpSetOption に渡す必要があることに注意してください。

任期 説明
WINHTTP_DISABLE_AUTHENTICATION 自動認証は無効になっています。
WINHTTP_DISABLE_COOKIES 要求への Cookie ヘッダーの自動追加は無効になっています。 また、返された Cookie は Cookie データベースに自動的に追加されません。 Cookie を無効にすると、Passport 認証のパフォーマンスが低下する可能性があります。
WINHTTP_DISABLE_KEEP_ALIVE 接続のキープアライブ セマンティクスを無効にします。 MSN、NTLM、およびその他の種類の認証には、キープアライブ セマンティクスが必要です。
WINHTTP_DISABLE_REDIRECTS WinHttpSendRequest を使用して要求を送信すると、自動リダイレクトは無効になります。 自動リダイレクトが無効になっている場合、アプリケーションは Passport 認証を成功させるためにコールバック関数を登録する必要があります。

WINHTTP_OPTION_DISABLE_GLOBAL_POOLING

グローバルなクロスセッション プーリングを無効にします。 グローバルなクロスセッション プーリングは、互換性上の理由から既定でサポートされる従来の動作であるため、この方法をお勧めします。 これは、後で最大接続数を手動で設定した場合に影響を受けます。

WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES

すべての適用可能な選択肢の OR を指定して、WinHTTP セッションで次のプロキシ認証プラクティスの 1 つ以上を無効にします。 これらは、 ループバックまたはローカル アドレスに要求を送信するときにローカル コンピューター アカウントを強制的に使用するWINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICEを除く、すべてのスキームです。 これにより、システム資格情報がローカル HTTP プロキシに漏洩するのを防ぐことができます。

任期 説明
WINHTTP_PROXY_DISABLE_SCHEME_BASIC 基本認証スキームを無効にします。
WINHTTP_PROXY_DISABLE_SCHEME_DIGEST ダイジェスト認証スキームを無効にします。
WINHTTP_PROXY_DISABLE_SCHEME_NTLM NTLM 認証スキームを無効にします。
WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS Kerberos 認証スキームを無効にします。
WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE ネゴシエート認証スキームを無効にします。
WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE ループバックまたはローカル アドレスに要求を送信するときに、ローカル コンピューター アカウントを強制的に使用します。

WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK

初期プロトコル ネゴシエーションが失敗したときに、WinHTTP が下位バージョンのセキュリティ プロトコルとの接続を再試行できないようにします。

WINHTTP_OPTION_DISABLE_STREAM_QUEUE

既存の接続で次に使用可能なストリームを待機するのではなく、同時ストリームの上限に達したときに、新しい要求で追加の HTTP/2 接続を開くことができるようになります。

WINHTTP_OPTION_ENABLE_FEATURE

現在有効になっている機能を指定する符号なし long 整数値を設定します。 次のいずれかの値を指定できます。

任期 説明
WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION 有効にした場合、WinHTTP は SSL 証明書認証操作の間、クライアントの偽装を一時的に元に戻します。 この値は、セッション ハンドルでのみ設定できます。
WINHTTP_ENABLE_SSL_REVOCATION 有効にすると、WinHTTP は SSL 失効を許可します。 この値は、要求ハンドルでのみ設定できます。

WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL

許容される高度な HTTP バージョンの DWORD ビットマスクを設定します。 使用可能な値は次のとおりです。

任期 説明
WINHTTP_PROTOCOL_FLAG_HTTP2 (0x1) 要求に対して HTTP/2 を有効にします。
WINHTTP_PROTOCOL_FLAG_HTTP3 (0x2) 要求に対して HTTP/3 を有効にします。
なし (0x0) 要求を HTTP/1.1 以前に制限します。

このオプションを使用して、従来のバージョンの HTTP (1.1 以前) を無効にすることはできません。 既定値は 0x0 です。

WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT

このオプションは、WinHttp セッション ハンドルで設定して、HTTP/2 が使用されている場合に、WinHttp が呼び出し元が指定したクライアント証明書コンテキストを使用できるようにします。

WINHTTP_OPTION_ENABLETRACING

トレースが現在有効かどうかを指定する BOOL 値を設定します。 このオプションは 、NULLHINTERNET ハンドルでのみ設定できます。 WinHTTP トレースの収集も参照してください。

WINHTTP_OPTION_ENCODE_EXTRA

パスとクエリ文字列の URL パーセント エンコードを有効にします。

または、WinHttp を呼び出す前にパーセント エンコードすることもできます。

WINHTTP_OPTION_EXPIRE_CONNECTION

このオプションは、まだアクティブ (送受信中) の要求ハンドルでのみ設定できます。 このオプションを設定すると、渡された要求ハンドルに関連付けられている接続で要求の処理を停止するように WinHttp に指示されます。 このオプションが呼び出された要求ハンドルが完了すると、接続は閉じられます。 このオプションはパラメーターを受け取りません。

WINHTTP_OPTION_EXTENDED_ERROR

このスレッド コンテキストで最後に返された ERROR_WINHTTP_* エラー メッセージにマップされた Microsoft Windows Sockets エラー コードを含む符号なし long 整数値を取得します。 ハンドル値として NULL を 渡すことができます。

WINHTTP_OPTION_FEATURE_SUPPORTED

指定されたオプション フラグがこのバージョンの WinHTTP でサポートされているかどうかを確認します。

WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION

既定では、WinHttp が要求を送信するときに、要求を処理するための使用可能な接続がない場合、WinHttp は新しい接続の確立を試み、要求はこの新しい接続にバインドされます。 このオプションを設定すると、このような要求は、代わりに最初に使用可能になった接続で処理され、必ずしも確立されるとは限りません。

WINHTTP_OPTION_GLOBAL_PROXY_CREDS

hInternet 関数パラメーターが NULL に設定されたWINHTTP_CREDS_EX構造体へのポインターを受け取ります。 このオプションには、レジストリ キー HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! が必要です。ShareCredsWithWinHttp。 このレジストリ キーが設定されていない場合、WinHTTP はエラー ERROR_WINHTTP_INVALID_OPTIONを返します。 このレジストリ キーは既定では存在しません。 設定すると、WinINet は資格情報を WinHTTP に送信します。 WinHttp が認証チャレンジを取得し、現在のハンドルに資格情報が設定されていない場合は常に、WinINet によって提供される資格情報が使用されます。 プロキシ資格情報に加えてサーバー資格情報を共有するには、ユーザーが WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS を設定する必要があります。

WINHTTP_OPTION_GLOBAL_SERVER_CREDS

hInternet 関数パラメーターが NULL に設定されたWINHTTP_CREDS_EX構造体へのポインターを受け取ります。 このオプションには、レジストリ キー HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! が必要です。ShareCredsWithWinHttp。 このレジストリ キーが設定されていない場合、WinHTTP はエラー ERROR_WINHTTP_INVALID_OPTIONを返します。 このレジストリ キーは既定では存在しません。 設定すると、WinINet は資格情報を WinHTTP に送信します。 WinHttp が認証チャレンジを取得し、現在のハンドルに資格情報が設定されていない場合は常に、WinINet によって提供される資格情報が使用されます。 プロキシ資格情報に加えてサーバー資格情報を共有するには、ユーザーが WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS を設定する必要があります。

WINHTTP_OPTION_HANDLE_TYPE

渡された HINTERNET ハンドルの型を含む符号なし long 整数値を取得します。 戻り値には、次のいずれかを指定できます。

任期 説明
WINHTTP_HANDLE_TYPE_CONNECT ハンドルは接続ハンドルです。
WINHTTP_HANDLE_TYPE_REQUEST ハンドルは要求ハンドルです。
WINHTTP_HANDLE_TYPE_SESSION ハンドルはセッション ハンドルです。

WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED

WINHTTP_OPTION_ENABLE_HTTP_PROTOCOLによって有効にされたプロトコル バージョン以外のバージョンが要求に使用されないようにします。

WINHTTP_OPTION_HTTP_PROTOCOL_USED

特定の要求で使用された高度な HTTP バージョンを示す DWORD を取得します。 使用可能な値の一覧については、 WINHTTP_OPTION_ENABLE_HTTP_PROTOCOLを参照してください。

WINHTTP_OPTION_HTTP_VERSION

サポートされているレガシ HTTP バージョンを宣言する HTTP_VERSION_INFO 構造体を設定または取得します。 これはプロセス全体のオプションです。ハンドルに NULL を使用します。

この構造体は、HTTP/1.0 および HTTP/1.1 に対して有効です。 最新の HTTP バージョンについては、「 WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL とWINHTTP_OPTION_HTTP_PROTOCOL_USED」を参照 してください

WINHTTP_OPTION_HTTP2_KEEPALIVE

このオプションをセッション ハンドルに設定して、WinHttp でキープアライブ メカニズムとして HTTP/2 PING フレームを使用させることができます。 呼び出し元はタイムアウトをミリ秒単位で指定し、そのタイムアウト期間に接続にアクティビティがない場合、WinHttp は HTTP/2 PING フレームの送信を開始します。 呼び出し元は、5000 ミリ秒未満のタイムアウト値を設定できません。

WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING

このオプションは、WinHttp 要求ハンドルで設定して、HTTP/2 応答に "Transfer-Encoding" ヘッダーが含まれている場合の WinHttp の動作を制御できます。 このような場合、このオプションが FALSE に設定されている場合、WinHttp はエラーを返します。

WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW

初期 HTTP/2 ストリーム受信ウィンドウ サイズと、 WINHTTP_HTTP2_RECEIVE_WINDOW 構造体を使用してウィンドウの更新を送信するためのしきい値を設定します。

WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT

バッファーを使用して、HTTP/3 ハンドシェイク タイムアウトを PDWORD としてミリ秒単位で設定します。

WINHTTP_OPTION_HTTP3_INITIAL_RTT

msquic で使用される初期 RTT をミリ秒単位で構成します。

WINHTTP_OPTION_HTTP3_KEEPALIVE

接続のキープアライブ セマンティクスを有効にします。 バッファーを使用して、キープアライブ タイムアウトを PDWORD としてミリ秒単位で設定します。

WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE

要求の送信に使用される HTTP/3 ストリームのサーバー指定エラーを取得します。

WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE

セキュリティで保護された接続で、証明書失効リストをダウンロードできなかったセキュリティ証明書を使用できるようにします。

WINHTTP_OPTION_IPV6_FAST_FALLBACK

接続の IPv6 高速フォールバック (ハピダー アイボール) を有効にします。 この動作は、IPv6 が信頼性の低いネットワークでの接続時間を改善するために RFC 6555 で説明されている Happy Eyeballs の動作に似ています。

  • 特定のホストに対して IPv6 アドレスと IPv4 アドレスの両方が解決された場合、WinHttp は最初に解決された IPv6 アドレスに短い (300 ミリ秒) のタイムアウトで接続することから始めます。
  • 接続に失敗した場合、WinHttp は標準タイムアウトで最初に解決された IPv4 アドレスへの接続を試みます。
  • 2 つ目の接続が失敗した場合、WinHttp は最初に解決された IPv6 アドレスを標準タイムアウトで再試行します。
  • 3 番目の接続が失敗した場合、WinHttp は残りのアドレスの既定の動作に戻り、接続が確立されるか、アドレスが残らなくなるまで、標準タイムアウトで各アドレスへの接続を試みます。

WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE

プロキシ リターン接続応答を取得できるかどうかを取得します。

WINHTTP_OPTION_MATCH_CONNECTION_GUID

WINHTTP_MATCH_CONNECTION_GUID構造体を受け取り、一致する接続で要求を処理するように WinHTTP に指示します。 WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIREDが設定されている場合は、一致する GUID を持つ接続のみを使用できます。 それ以外の場合は、一致する GUID を持つ接続と、GUID でマークされていない接続を使用できます。

WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER

HTTP/1.0 サーバーごとに許可される接続の最大数を含む符号なし long 整数値を設定または取得します。 既定値は INFINITE です。

適用対象: Windows Vista SP1 以降。Windows Server 2008 以降。

WINHTTP_OPTION_MAX_CONNS_PER_SERVER

サーバーごとに許可される接続の最大数を含む符号なし long 整数値を設定または取得します。 既定値は INFINITE です。

このオプションを 0 に設定すると、WinHTTP は接続数の制限を 2 に設定します。

WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS

WinHTTP がフォローするリダイレクトの最大数を設定します。既定値は 10 です。 この制限により、承認されていないサイトでは、多数のリダイレクトの後に WinHTTP クライアントを一時停止できなくなります。

適用対象: WINDOWS XP SP1 以降。Windows 2000 SP3 以降。

WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE

最終的な状態コードを WinHTTP クライアントに返す前に無視される Informational 100 から 199 の状態コード応答の最大数。 情報 100 から 199 の状態コードは、最終的な状態コードの前にサーバーから送信でき、HTTP/1.1 の仕様で説明されています (詳細については、 RFC 2616 を参照してください)。 既定値は 10 です。

適用対象: WINDOWS XP SP1 以降。Windows 2000 SP3 以降。

WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE

バイト単位で指定された接続を再利用するために応答からドレインされたデータの量に対するバインド。 既定値は 1 MB です。

適用対象: WINDOWS XP SP1 以降。Windows 2000 SP3 以降。

WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE

サーバー応答のヘッダー部分の最大サイズ (バイト単位で指定) に設定されたバインド。 このバインドは、無限のヘッダー データを含む応答を送信することで、クライアントをストールしようとする未承認のサーバーからクライアントを保護します。 既定値は 64 KB です。

適用対象: WINDOWS XP SP1 以降。Windows 2000 SP3 以降。

WINHTTP_OPTION_PARENT_HANDLE

このハンドルの親ハンドルを取得します。

WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT

Passport ログオン サーバーによって提供される 共同ブランド 化テキストを含む文字列を取得します。 このオプションは、ログオン サーバーが 401 状態コードで応答した直後に取得する必要があります。 アプリケーションは、返された文字列を保持するのに十分な大きさのバッファー サイズ (バイト単位) を渡す必要があります。

WINHTTP_OPTION_PASSPORT_COBRANDING_URL

Passport ログオン サーバーによって提供される ブランド グラフィックの URL を含む文字列を取得します。 このオプションは、ログオン サーバーが 401 状態コードで応答した直後に取得する必要があります。 アプリケーションは、返された文字列を保持するのに十分な大きさのバッファー サイズ (バイト単位) を渡す必要があります。

WINHTTP_OPTION_PASSPORT_RETURN_URL

Passport の戻り URL を取得する要求ハンドルに読み取り専用オプションを設定します。

WINHTTP_OPTION_PASSPORT_SIGN_OUT

セッション ハンドルにオプションを設定して、Passport ログインからサインアウトします。 アプリケーションは、 WINHTTP_OPTION_PASSPORT_RETURN_URLで取得された Passport の戻り URL を渡す必要があります。 戻り URL に関連するすべての Cookie がクリアされます。

WINHTTP_OPTION_PASSWORD

要求ハンドルに関連付けられているパスワードを含む文字列値を設定または取得します。

WINHTTP_OPTION_PROXY

既存のセッション ハンドルまたは要求ハンドルのプロキシ データを含む WINHTTP_PROXY_INFO 構造体を設定または取得します。 プロキシ データを取得する場合、アプリケーションは GlobalFree 関数を使用して、この構造体に含まれる lpszProxy 文字列と lpszProxyBypass 文字列を解放する必要があります (NULL 以外の場合)。 アプリケーションは 、NULL ハンドルを渡すことによって、グローバル プロキシ データ (既定のプロキシ) を照会できます。

WINHTTP_OPTION_PROXY_PASSWORD

プロキシへのアクセスに使用するパスワードを含む文字列値を設定または取得します。

WINHTTP_OPTION_PROXY_SPN_USED

認証時に WinHTTP が SSPI に指定したプロキシ サーバー プリンシパル名を取得します。 この文字列値は、認証エラーの後に SspiPromptForCredentials に 渡すために使用されます。

WINHTTP_OPTION_PROXY_USERNAME

プロキシへのアクセスに使用するユーザー名を含む文字列値を設定または取得します。

WINHTTP_OPTION_QUIC_STATS

RTT や送受信バイトなどの接続情報を含む QUIC_STATISTICS 構造体を取得します。

WINHTTP_OPTION_READ_BUFFER_SIZE

このオプションは非推奨です。効果はありません。

WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE

プロキシ応答エンティティを取得できるかどうかを設定します。 このオプションは、既定では無効になっています。

WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT

要求へのすべての応答ヘッダーの受信を待機するタイムアウト値 (ミリ秒単位) を含む符号なし long 整数値を設定または取得します。 WinHTTP がこのタイムアウト期間内にすべてのヘッダーを受信できない場合、要求は取り消されます。 既定のタイムアウト値は 90 秒です。

このタイムアウトは、ソケットからデータを受信した場合にのみチェックされます。 その結果、タイムアウトが切れると、サーバーからさらに多くのデータが到着するまで、クライアント アプリケーションに通知されません。 サーバーからデータが到着しない場合、クライアント アプリケーションのタイムアウト有効期限と通知の間の遅延は、WinHttpSetTimeouts 関数の dwReceiveTimeout パラメーターを使用して設定されたタイムアウト値と同じ大きさになる可能性があります。

WINHTTP_OPTION_RECEIVE_TIMEOUT

要求に対する部分的な応答を受信したり、データを読み取ったりするためのタイムアウト値 (ミリ秒単位) を含む符号なし long 整数値を設定または取得します。 応答がこのタイムアウト値よりも長くかかる場合、要求は取り消されます。 タイムアウトの既定値は 30 秒です。

WINHTTP_OPTION_REDIRECT_POLICY

30 倍の HTTP リダイレクト状態コードの処理に関する WinHTTP の動作を設定します。 このオプションは、セッションまたは要求ハンドルで次のいずれかの値に設定できます。

任期 説明
WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS すべてのリダイレクトが自動的に行います。
WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP セキュリティで保護された (https) URL から安全でない (http) URL に由来するものを除き、すべてのリダイレクトが実行されます。 これが既定の設定です。
WINHTTP_OPTION_REDIRECT_POLICY_NEVER リダイレクトに従うことはありません。 30x 状態がアプリケーションに返されます。

WINHTTP_OPTION_REJECT_USERPWD_IN_URL

ユーザー名とパスワードを含む URL を拒否します。 このオプションでは、ユーザー名またはパスワードが指定されていない場合でも、 username:password セマンティクスを含む URL も拒否されます。 たとえば、"u:p@hostname"、":@hostname"、"u:@hostname"、":p@hostname" はすべて無効としてフラグが設定されます。 無効な URL が関数に渡されると、 ERROR_WINHTTP_INVALID_URLが返されます。 このオプションは、既定ではオフになっています。

WINHTTP_OPTION_REQUEST_ANNOTATION

指定された注釈名の要求注釈の取得と設定を有効にします。 これにより、呼び出し元は、後で取得できるように文字列を要求にアタッチして、呼び出し元が役に立つと思われるカスタム ロジックによって要求を識別できます。

WINHTTP_OPTION_REQUEST_PRIORITY

このオプションは非推奨です。効果はありません。

WINHTTP_OPTION_REQUEST_STATS

要求の統計情報を取得します。 使用可能な統計情報の一覧については、 WINHTTP_REQUEST_STATSを参照してください。

WINHTTP_OPTION_REQUEST_TIMES

要求のタイミング情報を取り出します。 使用可能なタイミングの一覧については、 WINHTTP_REQUEST_TIMESを参照してください。

WINHTTP_OPTION_REQUIRE_STREAM_END

このオプションは、"Content-Length" 応答ヘッダーを無視し、END_STREAM フラグが受信されるまでストリームで受信を続行するように WinHttp に指示します。

WINHTTP_OPTION_RESOLUTION_HOSTNAME

このオプションは、WinHttp 要求ハンドルが送信される前に設定できます。 設定した場合、WinHttp は DNS 解決のホスト名として呼び出し元が指定した文字列を使用します。

WINHTTP_OPTION_RESOLVE_TIMEOUT

ホスト名を解決するためのタイムアウト値 (ミリ秒単位) を含む符号なし long 整数値を設定または取得します。 既定のタイムアウト値は INFINITE です。 既定値以外を指定すると、名前解決ごとに 1 つのスレッド作成のオーバーヘッドが発生します。

WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT

サーバー証明書チェーンを構築するときにスレッドの偽装を元に戻し、代わりにプロセス トークンを強制的に使用します。

WINHTTP_OPTION_SECURE_PROTOCOLS

許容される Secure (HTTPS) プロトコルを指定する符号なし long 整数値を設定します。 この設定の既定値はオペレーティング システムのバージョンによって異なり、インストールされている更新プログラムの影響を受ける可能性があります。

  • Windows 11。 既定では、TLS1.2 と TLS1.3 のみが有効になっています。
  • Windows 10 および Windows 8.1。 既定では、SSL3、TLS1.0、TLS1.1、TLS1.2 のみが有効になっています。
  • Windows 8 と Windows 7。 既定では、SSL3 と TLS1 のみが有効になっています。

値は、次の値の 1 つ以上の組み合わせにすることができます。

任期 説明
WINHTTP_FLAG_SECURE_PROTOCOL_ALL Secure Sockets Layer (SSL) 2.0、SSL 3.0、およびトランスポート層セキュリティ (TLS) 1.0 プロトコルを使用できます。
WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 SSL 2.0 プロトコルを使用できます。
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 SSL 3.0 プロトコルを使用できます。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 TLS 1.0 プロトコルを使用できます。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 TLS 1.1 プロトコルを使用できます。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 TLS 1.2 プロトコルを使用できます。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 TLS 1.3 プロトコルを使用できます。

新しいプロトコルのサポートを有効にする必要があるが、WINHTTP_OPTION_SECURE_PROTOCOLSの適切な値を使用するようにアプリケーションを再コンパイルできない場合 は、代わりに DefaultSecureProtocols レジストリ エントリを追加できます。 このレジストリ エントリを使用すると、 WINHTTP_OPTION_SECURE_PROTOCOLS オプションが設定されていない場合に使用するセキュリティで保護されたプロトコルを指定できます。

重要

以下の手順では、レジストリの変更を行います。 ただし、レジストリを誤って変更した場合、重大な問題が発生する可能性があります。 そのため、次の手順に注意して従ってください。 追加の保護のために、レジストリを修正する前にバックアップを取ってください。 その後、問題が発生した場合は、レジストリを復元することができます。 レジストリをバックアップおよび復元する方法の詳細については、「 Windows でレジストリをバックアップおよび復元する方法」を参照してください。

アプリケーションが WinHttpSetOption(WINHTTP_OPTION_SECURE_PROTOCOLS) を呼び出さない場合、システムは DefaultSecureProtocols レジストリ エントリをチェックし、存在する場合は、 DefaultSecureProtocols レジストリ エントリで指定されたプロトコルで既存のオペレーティング システムの既定値をオーバーライドします。 WinHTTP で指定されたプロトコルは、プロトコルを無効にする可能性がある Secure Channel (Schannel) 構成設定によって無効にすることができます。

DefaultSecureProtocols レジストリ エントリは、次のパスに追加できます。

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

x64 ベースのコンピューターでは、Wow6432Node パスにDefaultSecureProtocolsを追加する必要もあります。

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

レジストリ値は DWORD ビットマップです。 使用する値は、必要なプロトコルに対応する値を追加することによって決定されます。

DefaultSecureProtocols 値 プロトコルが有効
0x00000008 既定で SSL 2.0 を有効にします
0x00000020 既定で SSL 3.0 を有効にします
0x00000080 既定で TLS 1.0 を有効にします
0x00000200 既定で TLS 1.1 を有効にします
0x00000800 既定で TLS 1.2 を有効にします
0x00002000 既定で TLS 1.3 を有効にする

たとえば、tls 1.1 と TLS 1.2 を指定する WINHTTP_OPTION_SECURE_PROTOCOLS の既定値をオーバーライドする場合です。 その場合は、TLS 1.1 (0x00000200) の値と TLS 1.2 (0x00000800) の値を受け取り、それらを電卓 (プログラマ モード) にまとめて追加すると、結果のレジストリ値は0x00000A00。

WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT

SSL/TLS サーバーの証明書を WINHTTP_CERTIFICATE_INFO 構造に取得します。 アプリケーションは、LocalFree を使用して lpszSubjectInfo メンバーと lpszIssuerInfo メンバーを解放する必要があります。

WINHTTP_OPTION_SECURITY_FLAGS

ハンドルのセキュリティ フラグを含む符号なし long 整数値を設定または取得します。 次の値を組み合わせて使用できます。

任期 説明
SECURITY_FLAG_IGNORE_CERT_CN_INVALID 証明書で無効な共通名を許可します。つまり、アプリケーションで指定されたサーバー名が証明書の共通名と一致しません。 このフラグが設定されている場合、アプリケーションは WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID コールバックを受け取りません。
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID 無効な証明書の日付、つまり有効期限が切れているか、まだ有効でない証明書を許可します。 このフラグが設定されている場合、アプリケーションは WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID コールバックを受け取りません。
SECURITY_FLAG_IGNORE_UNKNOWN_CA 無効な証明機関を許可します。 このフラグが設定されている場合、アプリケーションは WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA コールバックを受け取りません。
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE サーバー以外の証明書 (クライアント証明書など) を使用してサーバーの ID を確立できるようにします。
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE 弱い署名を無視できるようにします。
このフラグは、Windows 7 および Windows Server 2008 R2 以降の各 OS のロールアップ更新プログラムで使用できます。
SECURITY_FLAG_SECURE セキュリティで保護された転送を使用します。 これは、 WinHttpQueryOption の呼び出しでのみ返されます。
SECURITY_FLAG_STRENGTH_MEDIUM 中 (56 ビット) 暗号化を使用します。 これは、 WinHttpQueryOption の呼び出しでのみ返されます。
SECURITY_FLAG_STRENGTH_STRONG 強力な (128 ビット) 暗号化を使用します。 これは、 WinHttpQueryOption の呼び出しでのみ返されます。
SECURITY_FLAG_STRENGTH_WEAK 弱い (40 ビット) 暗号化を使用します。 これは、 WinHttpQueryOption の呼び出しでのみ返されます。

WINHTTP_OPTION_SECURITY_INFO

要求の SChannel 接続と暗号情報を取得します。

WINHTTP_OPTION_SECURITY_KEY_BITNESS

暗号化キーの暗号強度を含む符号なし long 整数値を取得します。 数値を大きくすると、暗号強度の暗号化が強化されます。

WINHTTP_OPTION_SEND_TIMEOUT

要求を送信するか、データを書き込むためのタイムアウト値 (ミリ秒単位) を含む符号なし long 整数値を設定または取得します。 要求の送信にタイムアウトより長い時間がかかる場合、送信操作は取り消されます。 既定のタイムアウトは 30 秒です。

WINHTTP_OPTION_SERVER_CBT

チャネル バインド トークン (CBT) を指定する SecPkgContext_Bindings 構造体へのポインターを取得します。

チャネル バインド トークンは、セキュリティで保護されたトランスポート チャネルのプロパティであり、認証チャネルをセキュリティで保護されたトランスポート チャネルにバインドするために使用されます。 このトークンは、SSL 接続が確立された後にのみ、このオプションによって取得できます。

このオプションと lpBuffernull 値を WinHttpQueryOption に渡すと、ERROR_INSUFFICIENT_BUFFERと lpdwBufferLength パラメーター内のバッファーに必要なバイト サイズが返されます。 この返されるバッファー サイズの値は、チャネル バインド トークンのクエリを実行する後続の呼び出しで渡すことができます。 チャネル バインド トークンに基づいて要求ヘッダーを変更する場合は、WINHTTP_CALLBACK_STATUS_REQUESTを処理するときに、次の手順が必要です。 Windows XP と Vista では、このコールバック中の要求ヘッダーの変更はサポートされないことに注意してください。

WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT

サーバー認定チェーン コンテキストを取得します。 WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT 渡して、ネゴシエートされた SSL 接続中に受信したサーバー証明書チェーンの CERT_CHAIN_CONTEXT への重複ポインターを取得できます。 クライアントは、バッファーに格納されている返されたPCCERT_CONTEXT ポインターで CertFreeCertificateContext を呼び出す必要があります。

WINHTTP_OPTION_SERVER_CERT_CONTEXT

サーバー認定コンテキストを取得します。 WINHTTP_OPTION_SERVER_CERT_CONTEXT 渡して、ネゴシエートされた SSL 接続中に受信したサーバー証明書の CERT CONTEXT への重複ポインターを取得できます。 クライアントは、バッファーに格納されている返されたPCCERT_CONTEXT ポインターで CertFreeCertificateContext を呼び出す必要があります。

WINHTTP_OPTION_SERVER_SPN_USED

認証時に WinHTTP が SSPI に指定したサーバー サーバー プリンシパル名を取得します。 この文字列値は、認証エラーの後に SspiPromptForCredentials に 渡すことができます。

WINHTTP_OPTION_SPN

Kerberos 認証またはネゴシエート Kerberos 認証用に SPN (サービス プリンシパル名) が構築されている場合に、サーバー ポート番号を含めるか削除します。 このフラグは、次のいずれかの値です。

任期 説明
WINHTTP_DISABLE_SPN_SERVER_PORT サーバーのポート番号を削除します。
WINHTTP_ENABLE_SPN_SERVER_PORT サーバー ポート番号が含まれます。

WINHTTP_OPTION_STREAM_ERROR_CODE

このオプションは WinHttp 要求ハンドルに対してクエリを実行でき、HTTP ストリームで受信したRST_STREAM フレームによって示されるエラー コードを返します。

WINHTTP_OPTION_TCP_FAST_OPEN

接続に対して TCP 高速オープンを有効にします。

WINHTTP_OPTION_TCP_KEEPALIVE

このオプションは、WinHttp セッション ハンドルで設定して、基になるソケットで TCP キープアライブ動作を有効にすることができます。 tcp_keepalive構造体を受け取ります。

WINHTTP_OPTION_TLS_FALSE_START

接続の TLS False Start を有効にします。

WINHTTP_OPTION_TCP_PRIORITY_STATUS

WINHTTP_OPTION_TCP_PRIORITY_HINTを使用して、TCP ソケット セットのヒント付き優先度を照会します。 詳細については、 SIO_SET_PRIORITY_HINT のドキュメントを参照してください。

WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK

このオプションを WinHttp セッション ハンドルに設定して、新しいプロトコル バージョンで TLS ハンドシェイクエラーが発生した場合に TLS 1.0 へのフォールバックを許可するかどうかを制御できます。

WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT

特定のセッションに対して最後のコールバックが完了したときに設定されるイベントを受け取ります。 このフラグは、セッション ハンドルで使用する必要があります。 WinHTTP によって設定されるまで、イベントを閉じることはできません。

WINHTTP_OPTION_UNSAFE_HEADER_PARSING

このオプションは内部使用のために予約されているため、呼び出さないでください。

WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET

WinHttpSendRequest を使用して WebSocket ハンドシェイク プロセスを開始するようにスタックに指示します。 このオプションはパラメーターを受け取っていません。

WINHTTP_OPTION_URL

ダウンロードしたリソースの完全な URL を含む文字列値を取得します。 元の URL に検索文字列やアンカーなどの追加のデータが含まれている場合、または呼び出しがリダイレクトされた場合、返される URL は元の URL とは異なります。 アプリケーションは、返された URL をワイド文字で保持するのに十分な大きさのバッファーをバイト単位で渡す必要があります。

WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS

BOOL を受け取り、セッション ハンドルのみを設定できます。 オプションが設定された後にのみ、セッション ハンドルから作成されたハンドルに反映されます。 TRUE の場合、このオプションは、WinInet からプッシュダウンされたグローバル サーバー資格情報の使用を最後の手段として引き起こします。 このオプションの既定値は FALSE です。 このオプションには、レジストリ キー HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! が必要です。ShareCredsWithWinHttp。 このレジストリ キーは既定では存在しません。 設定すると、WinINet は資格情報を WinHTTP に送信します。 WinHttp が認証チャレンジを取得し、現在のハンドルに資格情報が設定されていない場合は常に、WinINet によって提供される資格情報が使用されます。

WINHTTP_OPTION_USE_SESSION_SCH_CRED

エンドポイントごとの既定の資格情報ではなく、セッション内のすべてのエンドポイントに対して 1 つの資格情報を既定で使用するように設定できます。 これにより、資格情報管理のオーバーヘッドが軽減され、パフォーマンスが向上する可能性があります。 クライアント証明書が明示的に指定されている場合、この既定の資格情報は無効であることに注意してください。

WINHTTP_OPTION_USER_AGENT

WinHttpOpen によって提供され、後続の WinHttpSendRequest 関数で使用されるハンドルに対してユーザー エージェント文字列を設定または取得します。これは、WinHttpAddRequestHeaders または WinHttpSendRequest によって追加されたヘッダーによってオーバーライドされない限りです。 ユーザー エージェントを取得する場合、アプリケーションは、返された URL をワイド文字で保持するのに十分な大きさのバッファー (バイト単位) を渡す必要があります。 ユーザー エージェントを設定する場合、バッファー サイズは文字列の長さ (文字数) と NULL ターミネータです。

WINHTTP_OPTION_USERNAME

ユーザー名を含む文字列を設定または取得します。

WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT

WinHttpWebSocketClose が終了ハンドシェイクの完了を待機する時間をミリ秒単位で設定します。 既定値は 10 秒です。

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL

接続経由でキープアライブ パケットを送信する間隔をミリ秒単位で設定します。 既定の間隔は 30000 (30 秒) です。 最小間隔は 15000 (15 秒) です。 WinHttpSetOption を使用して 15000 未満の値を設定すると、ERROR_INVALID_PARAMETERで返されます。

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVALの既定値は HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval から読み取られます。 値が設定されていない場合は、既定値の 30000 が使用されます。 キープアライブ間隔を 15,000 ミリ秒より低くすることはできません。

WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE

WebSocket 接続で使用する受信バッファー サイズを指定する DWORD を設定または取得します。

WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE

WebSocket 接続で使用する送信バッファー サイズを指定する DWORD を設定または取得します。

WINHTTP_OPTION_WORKER_THREAD_COUNT

スレッド プールが非同期完了に使用するワーカー スレッドの数を指定する、符号なし long 整数値を設定します。 このオプションの既定値は 0 で、ワーカー スレッドの数がシステム上の CPU の数と等しいことを指定します。 このオプションは、非同期操作が発生する前に NULLHINTERNET ハンドルでのみ設定できます。 このオプションは 1 回だけ設定できます。

適用対象: Windows 7 以降。Windows Server 2008 R2 以降。

WINHTTP_OPTION_WRITE_BUFFER_SIZE

このオプションは非推奨です。効果はありません。

注釈

次の表は、操作できるハンドル、クエリと設定が可能かどうか、および使用されるデータ型を指定することで、オプション フラグの一覧を示しています。 "X" は、オプション フラグが関数またはハンドルで使用するために有効であることを示し、"-" はオプション フラグが無効であることを指定します。

サポートされていない Windows バージョンでオプション フラグを設定またはクエリしようとすると、 ERROR_WINHTTP_INVALID_OPTIONが発生します。

オプション フラグとデータ型 セッション ハンドル 要求ハンドル クエリ オプション SET オプション Windows の最小バージョン
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS
BOOL
X - - X -
WINHTTP_OPTION_AUTOLOGON_POLICY
DWORD
- X - X -
WINHTTP_OPTION_BACKGROUND_CONNECTIONS
DWORD
X - - X Windows 10 バージョン 21H1
WINHTTP_OPTION_CALLBACK
LPVOID
X X X X -
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
CERT_CONTEXT
- X - X Windows Vista
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
SecPkgContext_IssuerListInfoEx
- X X - Windows Vista
WINHTTP_OPTION_CODEPAGE
DWORD
X - - X -
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH
DWORD
X - - X -
WINHTTP_OPTION_CONNECT_RETRIES
DWORD
X X X X -
WINHTTP_OPTION_CONNECT_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_CONNECTION_INFO
WINHTTP_CONNECTION_INFO
- X X - -
WINHTTP_OPTION_CONNECTION_STATS_V0
TCP_INFO_v0
- X X - Windows 10 バージョン 1903
WINHTTP_OPTION_CONNECTION_STATS_V1
TCP_INFO_v1
- X X - Windows 10 バージョン 2004
WINHTTP_OPTION_CONTEXT_VALUE
DWORD_PTR
X X X X -
WINHTTP_OPTION_DECOMPRESSION
DWORD
X X - X Windows 8.1
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING
BOOL
X - - X Windows 10 バージョン 21H1
WINHTTP_OPTION_DISABLE_FEATURE
DWORD
- X - X -
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
BOOL
X - - X Windows 10 バージョン 1903
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
BOOL
X X - X Windows 10 バージョン 1809
WINHTTP_OPTION_ENABLE_FEATURE
DWORD
* * - X -
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
DWORD
X X - X Windows 10 バージョン 1607
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT
BOOL
X - - X Windows 10 バージョン 21H1
WINHTTP_OPTION_ENABLETRACING
DWORD
- - X X -
WINHTTP_OPTION_ENCODE_EXTRA
BOOL
X X - X Windows 10 バージョン 1803
WINHTTP_OPTION_EXPIRE_CONNECTION
なし
- X - X Windows 10 バージョン 1903
WINHTTP_OPTION_EXTENDED_ERROR
DWORD
X X X - -
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
BOOL
X - - X Windows 10 バージョン 21H1
WINHTTP_OPTION_GLOBAL_PROXY_CREDS
WINHTTP_CREDS
X X - X -
WINHTTP_OPTION_GLOBAL_SERVER_CREDS
WINHTTP_CREDS_EX
X X - X -
WINHTTP_OPTION_HANDLE_TYPE
DWORD
X X X - -
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED
BOOL
X X - X Windows 10 バージョン 1903
WINHTTP_OPTION_HTTP_PROTOCOL_USED
DWORD
- X X - Windows 10 バージョン 1607
WINHTTP_OPTION_HTTP_VERSION
HTTP_VERSION_INFO
X X X X -
WINHTTP_OPTION_HTTP2_KEEPALIVE
DWORD
X - - X Windows 10 バージョン 21H1
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
BOOL
X X - X Windows 10 バージョン 21H1
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
BOOL
- X - X Windows 10 バージョン 2004
WINHTTP_OPTION_IPV6_FAST_FALLBACK
BOOL
X - - X Windows 10 バージョン 1903
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE
BOOL
X X X - -
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER
DWORD
X - X X -
WINHTTP_OPTION_MAX_CONNS_PER_SERVER
DWORD
X - X X -
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS
DWORD
X X X X -
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE
DWORD
X X X X -
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE
DWORD
X X X X -
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE
DWORD
X X X X -
WINHTTP_OPTION_PARENT_HANDLE
HINTERNET
X X X - -
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT
LPWSTR
- X X - -
WINHTTP_OPTION_PASSPORT_COBRANDING_URL
LPWSTR
- X X - -
WINHTTP_OPTION_PASSPORT_RETURN_URL
LPVOID
- X X - -
WINHTTP_OPTION_PASSPORT_SIGN_OUT
LPVOID
X - - X -
WINHTTP_OPTION_PASSWORD
LPWSTR
- X X X -
WINHTTP_OPTION_PROXY
WINHTTP_PROXY_INFO
X X X X -
WINHTTP_OPTION_PROXY_PASSWORD
LPWSTR
- X X X -
WINHTTP_OPTION_PROXY_SPN_USED
LPWSTR
- X X - -
WINHTTP_OPTION_PROXY_USERNAME
LPWSTR
- X X X -
WINHTTP_OPTION_READ_BUFFER_SIZE
DWORD
- X X X -
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE
BOOL
X X - X -
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_RECEIVE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_REDIRECT_POLICY
DWORD
X X X X -
WINHTTP_OPTION_REJECT_USERPWD_IN_URL
BOOL
- X - X -
WINHTTP_OPTION_REQUEST_PRIORITY
DWORD
- X X X -
WINHTTP_OPTION_REQUEST_STATS
WINHTTP_REQUEST_STATS
- X X - Windows 10 バージョン 1903
WINHTTP_OPTION_REQUEST_TIMES
WINHTTP_REQUEST_TIMES
- X X - Windows 10 バージョン 1903
WINHTTP_OPTION_REQUIRE_STREAM_END
BOOL
X X - X Windows 10 バージョン 21H1
WINHTTP_OPTION_RESOLUTION_HOSTNAME
LPWSTR
- X - X Windows 10 バージョン 21H1
WINHTTP_OPTION_RESOLVE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_SECURE_PROTOCOLS
DWORD
X - - X -
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT
WINHTTP_CERTIFICATE_INFO
- X X - -
WINHTTP_OPTION_SECURITY_FLAGS
DWORD
- X X X -
WINHTTP_OPTION_SECURITY_INFO
WINHTTP_SECURITY_INFO
- X X - Windows 10 バージョン 2004
WINHTTP_OPTION_SECURITY_KEY_BITNESS
DWORD
- X X - -
WINHTTP_OPTION_SEND_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_SERVER_CBT
SecPkgContext_Bindings*
- X X - -
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT
CERT_CHAIN_CONTEXT
- X X - Windows 10 バージョン 2004
WINHTTP_OPTION_SERVER_CERT_CONTEXT
CERT CONTEXT
- X X - -
WINHTTP_OPTION_SERVER_SPN_USED
LPWSTR
- X X - -
WINHTTP_OPTION_SPN
DWORD
- X - X -
WINHTTP_OPTION_STREAM_ERROR_CODE
DWORD
- X X - Windows 10 バージョン 21H1
WINHTTP_OPTION_TCP_FAST_OPEN
BOOL
X - - X Windows 10 バージョン 2004
WINHTTP_OPTION_TCP_KEEPALIVE
tcp_keepalive
X - - X Windows 10 バージョン 2004
WINHTTP_OPTION_TLS_FALSE_START
BOOL
X - - X Windows 10 バージョン 2004
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
BOOL
X - - X Windows 10 バージョン 21H1
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
HINTERNET
X - - X -
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
DWORD
- X - X -
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
なし
- X - X -
WINHTTP_OPTION_URL
LPWSTR
- X X - -
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS
BOOL
X X - X -
WINHTTP_OPTION_USER_AGENT
LPWSTR
X - X X -
WINHTTP_OPTION_USERNAME
LPWSTR
- X X X -
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT
DWORD
- - X X -
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
DWORD
- - X X -
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE
DWORD
X X X X Windows 8.1
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE
DWORD
X X X X Windows 8.1
WINHTTP_OPTION_WORKER_THREAD_COUNT
DWORD
- - - X -
WINHTTP_OPTION_WRITE_BUFFER_SIZE
DWORD
- X X X -

Windows XP と Windows 2000 については、「 Run-Time 要件」を参照してください。

要求事項

要件 価値
サポートされている最小のクライアント Windows XP、Windows 2000 Professional SP3 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003、Windows 2000 Server SP3 [デスクトップ アプリのみ]
再配布可能 Windows XP および Windows 2000 の WinHTTP 5.0 および Internet Explorer 5.01 以降。
ヘッダ Winhttp.h

こちらも参照ください