Partager via


Fonction HttpReadFragmentFromCache (http.h)

La fonction HttpReadFragmentFromCache récupère un fragment de réponse portant un nom spécifié à partir du cache de l’API du serveur HTTP.

Syntaxe

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
);

Paramètres

[in] RequestQueueHandle

Gérez la file d’attente des requêtes à laquelle le fragment de réponse spécifié est associé. Une file d’attente de requêtes est créée et son handle est retourné par un appel à la fonction HttpCreateRequestQueue .

Windows Server 2003 avec SP1 et Windows XP avec SP2 : Le handle de la file d’attente des requêtes est créé par la fonction HttpCreateHttpHandle .

[in] UrlPrefix

Pointeur vers une chaîne UrlPrefix qui contient le nom du fragment à récupérer. Cela doit correspondre à une chaîne UrlPrefix utilisée dans un précédent appel réussi à HttpAddFragmentToCache.

[in] ByteRange

Pointeur facultatif vers une structure HTTP_BYTE_RANGE qui indique un décalage de départ dans le fragment spécifié et le nombre d’octets à retourner. NULL si elle n’est pas utilisée, auquel cas la totalité du fragment est retournée.

[out] Buffer

Pointeur vers une mémoire tampon dans laquelle la fonction copie le fragment demandé.

[in] BufferLength

Taille, en octets, de la mémoire tampon pBuffer .

[out] BytesRead

Pointeur facultatif vers une variable qui reçoit le nombre d’octets à écrire dans la mémoire tampon de sortie. Si BufferLength est inférieur à ce nombre, l’appel échoue avec un retour de ERROR_INSUFFICIENT_BUFFER, et la valeur pointée par pBytesRead peut être utilisée pour déterminer la longueur minimale de mémoire tampon requise pour que l’appel réussisse.

Lorsque vous effectuez un appel asynchrone à l’aide de pOverlapped, définissez pBytesRead sur NULL. Sinon, lorsque pOverlapped a la valeur NULL, pBytesRead doit contenir une adresse mémoire valide et ne pas avoir la valeur NULL.

[in] Overlapped

Pour les appels asynchrones, définissez pOverlapped pour qu’il pointe vers une structure OVERLAPPED ou, pour les appels synchrones, définissez-la sur NULL.

Un appel synchrone se bloque jusqu’à ce que l’opération de cache soit terminée, tandis qu’un appel asynchrone retourne immédiatement ERROR_IO_PENDING et que l’application appelante utilise ensuite les ports d’achèvement GetOverlappedResult ou E/S pour déterminer quand l’opération est terminée. Pour plus d’informations sur l’utilisation des structures OVERLAPPED pour la synchronisation, consultez Synchronisation et entrée et sortie superposées.

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction est utilisée de manière asynchrone, une valeur de retour de ERROR_IO_PENDING indique que la demande de cache est mise en file d’attente et se termine ultérieurement par le biais de mécanismes d’achèvement d’E/S qui se chevauchent normalement.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Valeur Signification
ERROR_INVALID_PARAMETER
Un ou plusieurs des paramètres fournis sont sous une forme inutilisable.
ERROR_MORE_DATA
La mémoire tampon pointée par pBuffer est trop petite pour recevoir toutes les données demandées ; la taille de la mémoire tampon requise est pointée par pBytesRead , sauf si elle était NULL ou que l’appel était asynchrone. Dans le cas d’un appel asynchrone, la valeur pointée par le paramètre lpNumberOfBytesTransferred de la fonction GetOverLappedResult est définie sur la taille de mémoire tampon requise.
Autres
Code d’erreur système défini dans WinError.h.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista, Windows XP avec SP2 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête http.h
Bibliothèque Httpapi.lib
DLL Httpapi.dll

Voir aussi

Fonctions de l’API serveur HTTP version 1.0

HttpAddFragmentToCache

HttpFlushResponseCache