Función HttpAddFragmentToCache (http.h)

La función HttpAddFragmentToCache almacena en caché un fragmento de datos con un nombre especificado por el que se puede recuperar o actualiza los datos almacenados en caché con un nombre especificado. Estos fragmentos de datos almacenados en caché se pueden usar repetidamente para construir respuestas dinámicas sin el gasto de lecturas de disco. Por ejemplo, una respuesta compuesta de texto y tres imágenes se podría ensamblar dinámicamente a partir de cuatro o más fragmentos almacenados en caché en el momento en que se procesa una solicitud.

Sintaxis

HTTPAPI_LINKAGE ULONG HttpAddFragmentToCache(
  [in]           HANDLE             RequestQueueHandle,
  [in]           PCWSTR             UrlPrefix,
  [in]           PHTTP_DATA_CHUNK   DataChunk,
  [in]           PHTTP_CACHE_POLICY CachePolicy,
  [in, optional] LPOVERLAPPED       Overlapped
);

Parámetros

[in] RequestQueueHandle

Identificador de la cola de solicitudes con la que está asociada esta memoria caché. Se crea una cola de solicitudes y se devuelve su identificador mediante una llamada a la función HttpCreateRequestQueue .

Windows Server 2003 con SP1 y Windows XP con SP2: El identificador de la cola de solicitudes se crea mediante la función HttpCreateHttpHandle .

[in] UrlPrefix

Puntero a una cadena UrlPrefix que la aplicación usa en llamadas posteriores a HttpSendHttpResponse para identificar esta entrada de caché. La aplicación debe haber llamado previamente a HttpAddUrl con el mismo identificador que en el parámetro ReqQueueHandle y con esta cadena UrlPrefix idéntica o un prefijo válido.

Al igual que cualquier UrlPrefix, esta cadena debe tener la forma "scheme://host:port/relativeURI"; por ejemplo, http://www.mysite.com:80/image1.gif.

[in] DataChunk

Puntero a una estructura de HTTP_DATA_CHUNK que especifica un bloque de datos del cuerpo de la entidad que se va a almacenar en caché bajo el nombre al que apunta pUrlPrefix.

[in] CachePolicy

Puntero a una estructura de HTTP_CACHE_POLICY que especifica cómo se debe almacenar en caché este fragmento de datos.

[in, optional] Overlapped

Para las llamadas asincrónicas, establezca pOverlapped para que apunte a una estructura SUPERPUESTA o para llamadas sincrónicas, establézcalo en NULL.

Una llamada sincrónica bloquea el subproceso que realiza la llamada hasta que se completa la operación de caché, mientras que una llamada asincrónica devuelve inmediatamente ERROR_IO_PENDING y la aplicación que realiza la llamada usa puertos de finalización getOverlappedResult o E/S para determinar cuándo se completa la operación. Para obtener más información sobre el uso de estructuras SUPERPUESTAs para la sincronización, consulte Sincronización y entrada y salida superpuestas.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es NO_ERROR.

Si la función se usa de forma asincrónica, un valor devuelto de ERROR_IO_PENDING indica que la solicitud de caché se pone en cola y se completará más adelante a través de mecanismos de finalización de E/S superpuestos normales.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Valor Significado
ERROR_INVALID_PARAMETER
Uno o varios de los parámetros proporcionados están en forma inutilizable.
Otros
Código de error del sistema definido en WinError.h.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista, Windows XP con SP2 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado http.h
Library Httpapi.lib
Archivo DLL Httpapi.dll

Consulte también

Funciones de la API de servidor HTTP versión 1.0

HttpFlushResponseCache

HttpReadFragmentFromCache