HttpAddFragmentToCache 関数 (http.h)
HttpAddFragmentToCache 関数は、取得可能な指定された名前のデータ フラグメントをキャッシュするか、指定した名前でキャッシュされたデータを更新します。 このようなキャッシュされたデータ フラグメントを繰り返し使用して、ディスク読み取りを行わずに動的応答を構築できます。 たとえば、テキストと 3 つの画像で構成される応答は、要求の処理時に 4 つ以上のキャッシュされたフラグメントから動的に組み立てることができます。
構文
HTTPAPI_LINKAGE ULONG HttpAddFragmentToCache(
[in] HANDLE RequestQueueHandle,
[in] PCWSTR UrlPrefix,
[in] PHTTP_DATA_CHUNK DataChunk,
[in] PHTTP_CACHE_POLICY CachePolicy,
[in, optional] LPOVERLAPPED Overlapped
);
パラメーター
[in] RequestQueueHandle
このキャッシュが関連付けられている要求キューを処理します。 要求キューが作成され、そのハンドルが HttpCreateRequestQueue 関数の呼び出しによって返されます。
Windows Server 2003 SP1 と Windows XP SP2: 要求キューへのハンドルは、 HttpCreateHttpHandle 関数によって作成されます。
[in] UrlPrefix
このキャッシュ エントリを識別するために、アプリケーションが HttpSendHttpResponse の後続の呼び出しで使用する UrlPrefix 文字列へのポインター。 アプリケーションは、ReqQueueHandle パラメーターと同じハンドルを使用し、この同じ UrlPrefix 文字列またはその有効なプレフィックスを使用して、以前に HttpAddUrl を呼び出している必要があります。
UrlPrefix と同様に、この文字列は "scheme://host:port/relativeURI" という形式にする必要があります。たとえば、 http://www.mysite.com:80/image1.gif
です。
[in] DataChunk
pUrlPrefix が指す名前でキャッシュするエンティティ本体データ ブロックを指定するHTTP_DATA_CHUNK構造体へのポインター。
[in] CachePolicy
このデータ フラグメントのキャッシュ方法を指定する HTTP_CACHE_POLICY 構造体へのポインター。
[in, optional] Overlapped
非同期呼び出しの場合 は、pOverlapped を OVERLAPPED 構造体をポイントするように設定するか、同期呼び出しの場合は NULL に設定 します。
同期呼び出しは、キャッシュ操作が完了するまで呼び出し元のスレッドをブロックしますが、非同期呼び出しはすぐにERROR_IO_PENDINGを返し、呼び出し元のアプリケーションは GetOverlappedResult または I/O 完了ポートを使用して操作がいつ完了するかを判断します。 同期に OVERLAPPED 構造体を使用する方法の詳細については、「 同期」と「重複した入力と出力」を参照してください。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が非同期的に使用される場合、戻り値ERROR_IO_PENDINGは、キャッシュ要求がキューに入れられ、通常の重複した I/O 完了メカニズムによって後で完了することを示します。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
値 | 意味 |
---|---|
|
指定されたパラメーターの 1 つ以上が使用できない形式です。 |
|
WinError.h で定義されている システム エラー コード 。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista、SP2 を使用した Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | http.h |
Library | Httpapi.lib |
[DLL] | Httpapi.dll |