Share via


Windows Server 2008 および Windows Vista の新機能

Windows Server 2008 および Windows Vista 以降では、WinHTTP API が強化され、次の機能が含まれています。

4 GB を超えるアップロード。

WinHttpSendRequest は、DWORD の合計長パラメーターのサイズに制限があるため、4 GB のデータのみを送信できます。 アプリケーションが 4 GB を超えるデータを送信できるようにするには、Content-Length ヘッダーが、LARGE_INTEGER (2^64 バイト) と同じ大きさのデータを指定する要求に追加されます。 詳細については、「 WinHttpSendRequest」を参照してください。 この機能は、 IWinHttpRequest COM オブジェクトではサポートされていません。

Transfer-Encoding ヘッダー

Transfer-Encoding ヘッダーを使用すると、アプリケーションはチャンクされたデータをサーバーに送信できます。 Transfer-Encoding ヘッダーが要求に存在する場合、アプリケーションは WinHttpSendRequest の呼び出しで長さ 0 のエンティティ本文で要求を送信します。 エンティティ本文は、 後続の WinHttpWriteData の呼び出しで送信されます。 この機能は、 IWinHttpRequest COM オブジェクトではサポートされていません。

SSL クライアント証明書発行者リストの取得

WinHttpSendRequestERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDEDで失敗した場合、アプリケーションは SSL クライアント証明書発行者リストを取得できます。 新しいオプション WINHTTP_OPTION_CLIENT_CERT_ISSUER_LISTを使用すると、アプリケーションは証明書発行者リストを取得し、最適な証明書の一覧をフィルター処理できます。 詳細については、SSL クライアント認証の オプション フラグ発行者リストの取得に関するトピックを 参照してください。 この機能は、 IWinHttpRequest COM オブジェクトではサポートされていません。

オプションのクライアント証明書

WinHttpSendRequestERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDEDで失敗した場合、サーバーで SSL クライアント証明書が必要ない場合があります。 サーバーは、別の形式の認証に戻したり、クライアントが匿名アクセスを続行したりできる場合があります。 アプリケーションは WINHTTP_OPTION_CLIENT_CERT_CONTEXT オプションを設定し、クライアント証明書が必要かどうかを判断するために WinHttp が使用するマクロを指定します。 詳細については、「 オプション フラグ」を参照してください。 この機能は、 IWinHttpRequest COM オブジェクトではサポートされていません。

送信元と宛先の IP アドレス

WinHttpReceiveResponse が完了すると、アプリケーションは応答を生成した要求の送信元と宛先の IP アドレスとポートを取得できます。 WINHTTP_OPTION_CONNECTION_INFO オプションが設定されている場合に、送信元アドレスと宛先アドレスを受け取る新しい構造体が提供されます。 詳細については、「 オプション フラグ」を参照してください。 この機能は、 IWinHttpRequest COM オブジェクトではサポートされていません。

追加の SSL クライアント認証エラー

追加の SSL クライアント認証エラーにより、SSL クライアント証明書に関する詳細情報が提供されます。 Windows Server 2008 および Windows Vista では、ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEYおよびERROR_WINHTTP_CERT_NO_ACCESS_PRIVATE_KEYクライアント証明書のエラーが新たに発生します。 IWinHttpRequest COM オブジェクトは、HRESULT でこれらのエラーを返します。