Partager via


Fonction HttpAddFragmentToCache (http.h)

La fonction HttpAddFragmentToCache met en cache un fragment de données avec un nom spécifié par lequel il peut être récupéré, ou met à jour les données mises en cache sous un nom spécifié. Ces fragments de données mis en cache peuvent être utilisés à plusieurs reprises pour construire des réponses dynamiques sans frais de lecture sur disque. Par exemple, une réponse composée de texte et de trois images peut être assemblée dynamiquement à partir de quatre fragments mis en cache ou plus au moment du traitement d’une demande.

Syntaxe

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

Paramètres

[in] RequestQueueHandle

Gérez la file d’attente des requêtes à laquelle ce cache 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 que l’application utilise dans les appels suivants à HttpSendHttpResponse pour identifier cette entrée de cache. L’application doit avoir appelé HttpAddUrl précédemment avec le même handle que dans le paramètre ReqQueueHandle , et avec cette chaîne UrlPrefix identique ou un préfixe valide de celle-ci.

Comme tout UrlPrefix, cette chaîne doit prendre la forme « scheme ://host :port/relativeURI » ; par exemple, http://www.mysite.com:80/image1.gif.

[in] DataChunk

Pointeur vers une structure HTTP_DATA_CHUNK qui spécifie un bloc de données de corps d’entité à mettre en cache sous le nom désigné par pUrlPrefix.

[in] CachePolicy

Pointeur vers une structure HTTP_CACHE_POLICY qui spécifie la façon dont ce fragment de données doit être mis en cache.

[in, optional] 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 bloque le thread appelant 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 d’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 terminera 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.
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

HttpFlushResponseCache

HttpReadFragmentFromCache