Función HttpReadFragmentFromCache (http.h)

La función HttpReadFragmentFromCache recupera un fragmento de respuesta que tiene un nombre especificado de la memoria caché de la API del servidor HTTP.

Sintaxis

HTTPAPI_LINKAGE ULONG HttpReadFragmentFromCache(
  [in]  HANDLE           RequestQueueHandle,
  [in]  PCWSTR           UrlPrefix,
  [in]  PHTTP_BYTE_RANGE ByteRange,
  [out] PVOID            Buffer,
  [in]  ULONG            BufferLength,
  [out] PULONG           BytesRead,
  [in]  LPOVERLAPPED     Overlapped
);

Parámetros

[in] RequestQueueHandle

Identificador de la cola de solicitudes con la que está asociado el fragmento de respuesta especificado. 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 contiene el nombre del fragmento que se va a recuperar. Debe coincidir con una cadena UrlPrefix usada en una llamada correcta anterior a HttpAddFragmentToCache.

[in] ByteRange

Puntero opcional a una estructura de HTTP_BYTE_RANGE que indica un desplazamiento inicial en el fragmento y el recuento de bytes especificados que se van a devolver. NULL si no se usa, en cuyo caso se devuelve todo el fragmento.

[out] Buffer

Puntero a un búfer en el que la función copia el fragmento solicitado.

[in] BufferLength

Tamaño, en bytes, del búfer de pBuffer .

[out] BytesRead

Puntero opcional a una variable que recibe el número de bytes que se van a escribir en el búfer de salida. Si BufferLength es menor que este número, se produce un error en la llamada con una devolución de ERROR_INSUFFICIENT_BUFFER y el valor al que apunta pBytesRead se puede usar para determinar la longitud mínima del búfer necesario para que la llamada se realice correctamente.

Al realizar una llamada asincrónica mediante pOverlapped, establezca pBytesRead en NULL. De lo contrario, cuando pOverlapped se establece en NULL, pBytesRead debe contener una dirección de memoria válida y no establecerse en NULL.

[in] 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 se bloquea 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 de E/S o GetOverlappedResult 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 completa 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.
ERROR_MORE_DATA
El búfer al que apunta pBuffer es demasiado pequeño para recibir todos los datos solicitados; pBytesRead señala el tamaño del búfer requerido a menos que fuera NULL o la llamada fuera asincrónica. En el caso de una llamada asincrónica, el valor al que apunta el parámetro lpNumberOfBytesTransferred de la función GetOverLappedResult se establece en el tamaño del búfer necesario.
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

HttpAddFragmentToCache

HttpFlushResponseCache