Функция HttpAddFragmentToCache (http.h)
Функция HttpAddFragmentToCache кэширует фрагмент данных с указанным именем, с помощью которого его можно получить, или обновляет данные, кэшированные под указанным именем. Такие кэшированные фрагменты данных можно многократно использовать для создания динамических ответов без затрат на операции чтения на диске. Например, ответ, состоящий из текста и трех изображений, можно динамически собирать из четырех или более кэшированных фрагментов во время обработки запроса.
Синтаксис
HTTPAPI_LINKAGE ULONG HttpAddFragmentToCache(
[in] HANDLE RequestQueueHandle,
[in] PCWSTR UrlPrefix,
[in] PHTTP_DATA_CHUNK DataChunk,
[in] PHTTP_CACHE_POLICY CachePolicy,
[in, optional] LPOVERLAPPED Overlapped
);
Параметры
[in] RequestQueueHandle
Дескриптор очереди запросов, с которой связан этот кэш. Создается очередь запросов, а ее дескриптор возвращается вызовом функции HttpCreateRequestQueue .
Windows Server 2003 с пакетом обновления 1 (SP1) и Windows XP с пакетом обновления 2 (SP2): Дескриптор очереди запросов создается функцией HttpCreateHttpHandle .
[in] UrlPrefix
Указатель на строку UrlPrefix , которую приложение использует в последующих вызовах HttpSendHttpResponse для идентификации этой записи кэша. Приложение должно вызывать HttpAddUrl ранее с тем же дескриптором, что и в параметре ReqQueueHandle , и с этой идентичной строкой UrlPrefix или допустимым префиксом.
Как и любая строка UrlPrefix, эта строка должна иметь вид "scheme://host:port/relativeURI"; например, http://www.mysite.com:80/image1.gif
.
[in] DataChunk
Указатель на структуру HTTP_DATA_CHUNK , указывающую блок данных тела сущности для кэширования под именем, на которое указывает pUrlPrefix.
[in] CachePolicy
Указатель на структуру HTTP_CACHE_POLICY , указывающую способ кэширования этого фрагмента данных.
[in, optional] Overlapped
Для асинхронных вызовов задайте для параметра pOverlapped значение , указывающее на структуру OVERLAPPED , а для синхронных вызовов — значение NULL.
Синхронный вызов блокирует вызывающий поток до завершения операции кэширования, в то время как асинхронный вызов немедленно возвращает ERROR_IO_PENDING, а вызывающее приложение затем использует порты getOverlappedResult или завершения ввода-вывода, чтобы определить, когда операция завершена. Дополнительные сведения об использовании структур OVERLAPPED для синхронизации см. в разделе Синхронизация и перекрытие входных и выходных данных.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение будет NO_ERROR.
Если функция используется асинхронно, возвращаемое значение ERROR_IO_PENDING указывает, что запрос кэша помещается в очередь и будет завершен позже с помощью обычных перекрывающихся механизмов завершения ввода-вывода.
Если функция завершается сбоем, возвращается один из следующих кодов ошибок.
Значение | Значение |
---|---|
|
Один или несколько предоставленных параметров находится в непригодной для использования форме. |
|
Код системной ошибки, определенный в WinError.h. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista, Windows XP с пакетом обновления 2 (SP2) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | http.h |
Библиотека | Httpapi.lib |
DLL | Httpapi.dll |