HttpAddFragmentToCache function

The HttpAddFragmentToCache function caches a data fragment with a specified name by which it can be retrieved, or updates data cached under a specified name. Such cached data fragments can be used repeatedly to construct dynamic responses without the expense of disk reads. For example, a response composed of text and three images could be assembled dynamically from four or more cached fragments at the time a request is processed.


ULONG HttpAddFragmentToCache(
  _In_     HANDLE             ReqQueueHandle,
  _In_     PCWSTR             pUrlPrefix,
  _In_     PHTTP_DATA_CHUNK   pDataChunk,
  _In_     PHTTP_CACHE_POLICY pCachePolicy,
  _In_opt_ LPOVERLAPPED       pOverlapped


ReqQueueHandle [in]

Handle to the request queue with which this cache is associated. A request queue is created and its handle returned by a call to the HttpCreateRequestQueue function.

Windows Server 2003 with SP1 and Windows XP with SP2:  The handle to the request queue is created by the HttpCreateHttpHandle function.

pUrlPrefix [in]

Pointer to a UrlPrefix string that the application uses in subsequent calls to HttpSendHttpResponse to identify this cache entry. The application must have called HttpAddUrl previously with the same handle as in the ReqQueueHandle parameter, and with either this identical UrlPrefix string or a valid prefix of it.

Like any UrlPrefix, this string must take the form "scheme://host:port/relativeURI"; for example,

pDataChunk [in]

Pointer to an HTTP_DATA_CHUNK structure that specifies an entity body data block to cache under the name pointed to by pUrlPrefix.

pCachePolicy [in]

Pointer to an HTTP_CACHE_POLICY structure that specifies how this data fragment should be cached.

pOverlapped [in, optional]

For asynchronous calls, set pOverlapped to point to an OVERLAPPED structure, or for synchronous calls, set it to NULL.

A synchronous call blocks the calling thread until the cache operation is complete, whereas an asynchronous call immediately returns ERROR_IO_PENDING and the calling application then uses GetOverlappedResult or I/O completion ports to determine when the operation is completed. For more information about using OVERLAPPED structures for synchronization, see Synchronization and Overlapped Input and Output.

Return value

If the function succeeds, the return value is NO_ERROR.

If the function is used asynchronously, a return value of ERROR_IO_PENDING indicates that the cache request is queued and will complete later through normal overlapped I/O completion mechanisms.

If the function fails, the return value is one of the following error codes.


One or more of the supplied parameters is in an unusable form.


A system error code defined in WinError.h.



Minimum supported client

Windows Vista, Windows XP with SP2 [desktop apps only]

Minimum supported server

Windows Server 2003 [desktop apps only]







See also

HTTP Server API Version 1.0 Functions