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 |
---|---|
|
Un ou plusieurs des paramètres fournis sont sous une forme inutilisable. |
|
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. |
|
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 |