Задача кэша wininet что это
здравствуйте,
прощу помощи о причинах запуска процесса dllhost.exe.
ранее после отключение Internet Explorer 11 и так ж Windows Media Player не
возникала данная проблема. Рабочий стол ""чист и нет даже ярлыков, которые могли б быть
причиной запуска dllhost.exe
perfmon /res Связанные модулы
Образ ИД Имя модуля Полный путь
dllhost.exe 1552 sqmapi.dll C:\Program Files\Internet Explorer\sqmapi.dll
dllhost.exe 1552 ADVAPI32.dll C:\Windows\system32\ADVAPI32.dll
dllhost.exe 1552 api-ms-win-core-synch-l1-2-0.DLL C:\Windows\system32\api-ms-win-core-synch-l1-2-0.DLL
dllhost.exe 1552 api-ms-win-downlevel-advapi32-l1-1-0.dll C:\Windows\system32\api-ms-win-downlevel-advapi32-l1-1-0.dll
dllhost.exe 1552 api-ms-win-downlevel-advapi32-l2-1-0.dll C:\Windows\system32\api-ms-win-downlevel-advapi32-l2-1-0.dll
dllhost.exe 1552 api-ms-win-downlevel-normaliz-l1-1-0.dll C:\Windows\system32\api-ms-win-downlevel-normaliz-l1-1-0.dll
dllhost.exe 1552 api-ms-win-downlevel-ole32-l1-1-0.dll C:\Windows\system32\api-ms-win-downlevel-ole32-l1-1-0.dll
dllhost.exe 1552 api-ms-win-downlevel-shlwapi-l1-1-0.dll C:\Windows\system32\api-ms-win-downlevel-shlwapi-l1-1-0.dll
dllhost.exe 1552 api-ms-win-downlevel-user32-l1-1-0.dll C:\Windows\system32\api-ms-win-downlevel-user32-l1-1-0.dll
dllhost.exe 1552 api-ms-win-downlevel-version-l1-1-0.dll C:\Windows\system32\api-ms-win-downlevel-version-l1-1-0.dll
dllhost.exe 1552 CLBCatQ.DLL C:\Windows\system32\CLBCatQ.DLL
dllhost.exe 1552 CRYPTBASE.dll C:\Windows\system32\CRYPTBASE.dll
dllhost.exe 1552 CRYPTSP.dll C:\Windows\system32\CRYPTSP.dll
dllhost.exe 1552 DllHost.exe C:\Windows\system32\DllHost.exe
dllhost.exe 1552 ESENT.dll C:\Windows\system32\ESENT.dll
dllhost.exe 1552 fltlib.dll C:\Windows\system32\fltlib.dll
dllhost.exe 1552 GDI32.dll C:\Windows\system32\GDI32.dll
dllhost.exe 1552 guard64.dll C:\Windows\system32\guard64.dll
dllhost.exe 1552 iertutil.dll 11 C:\Windows\system32\iertutil.dll
dllhost.exe 1552 IMM32.DLL C:\Windows\system32\IMM32.DLL
dllhost.exe 1552 kernel32.dll C:\Windows\system32\kernel32.dll
dllhost.exe 1552 KERNELBASE.dll C:\Windows\system32\KERNELBASE.dll
dllhost.exe 1552 LPK.dll C:\Windows\system32\LPK.dll
dllhost.exe 1552 MSCTF.dll C:\Windows\system32\MSCTF.dll
dllhost.exe 1552 msvcrt.dll C:\Windows\system32\msvcrt.dll
dllhost.exe 1552 normaliz.DLL C:\Windows\system32\normaliz.DLL
dllhost.exe 1552 ntdll.dll C:\Windows\SYSTEM32\ntdll.dll
dllhost.exe 1552 ole32.dll C:\Windows\system32\ole32.dll
dllhost.exe 1552 OLEAUT32.dll C:\Windows\system32\OLEAUT32.dll
dllhost.exe 1552 profapi.dll C:\Windows\system32\profapi.dll
dllhost.exe 1552 psapi.dll C:\Windows\system32\psapi.dll
dllhost.exe 1552 RPCRT4.dll C:\Windows\system32\RPCRT4.dll
dllhost.exe 1552 RpcRtRemote.dll C:\Windows\system32\RpcRtRemote.dll
dllhost.exe 1552 rsaenh.dll C:\Windows\system32\rsaenh.dll
dllhost.exe 1552 sechost.dll C:\Windows\SYSTEM32\sechost.dll
dllhost.exe 1552 SHELL32.dll C:\Windows\system32\SHELL32.dll
dllhost.exe 1552 shlwapi.DLL C:\Windows\system32\shlwapi.DLL
dllhost.exe 1552 USER32.dll C:\Windows\system32\USER32.dll
dllhost.exe 1552 USERENV.dll C:\Windows\system32\USERENV.dll
dllhost.exe 1552 USP10.dll C:\Windows\system32\USP10.dll
dllhost.exe 1552 uxtheme.dll C:\Windows\system32\uxtheme.dll
dllhost.exe 1552 version.dll C:\Windows\system32\version.dll
dllhost.exe 1552 wininet.dll C:\Windows\system32\wininet.dll
вот этот появляется и создает кэш в папке AppData\Local\Microsoft\Windows\WebCache хотя отключег сам IE в компонентах виндовс .
Applications must properly allocate a buffer in order to get the desired results when using the persistent URL caching functions. For more information, see Using Buffers.
Cache Scavenger
The cache scavenger periodically cleans items from the cache. If an item is added to the cache and the cache is full, the item is added to the cache and the cache scavenger is scheduled. If the cache scavenger completes a round of scavenging and the cache has not reached the cache limit, the scavenger is scheduled for another round when another item is added to the cache. In general, the scavenger is scheduled when an added item puts the cache over its size limit. By default, the minimum time to live in the cache is set to 10 minutes unless otherwise specified in a cache-control directive. When the cache scavenger is initiated, there is no guarantee that the oldest items are the first to be deleted from the cache.
The cache is shared across all WinINet applications on the computer for the same user. Starting with Windows Vista and Windows Server 2008 the cache size is set to 1/32nd the size of the disk, with a minimum size of 8MB and a maximum size of 50MB.
Поведение кэша во время обработки ответа
- WinINet кэширует только ответы HTTP и FTP.
- Только хорошо обрабатываемые ответы могут храниться в кэше и использоваться в ответ на последующий запрос. Правильно настроенные ответы определяются как ответы, которые успешно возвращают данные.
- По умолчанию WinINet кэширует успешные ответы, если только директива Cache-Control не используется с сервера, или определенный приложением флаг, не Заказывающий, что ответ может не кэшироваться.
- Как правило, ответы на команду GET кэшируются, если выполняются указанные выше требования. Ответы на команды размещения и POST не кэшируются при каких обстоятельствах.
- Элементы будут кэшироваться даже при заполнении кэша. Если добавленный элемент помещает кэш на предельный размер, то запланирована очистка кэша. По умолчанию в кэше не гарантируется, что элементы остаются более чем 10 минут. Дополнительные сведения см. в разделе Очистка кэша ниже.
- По умолчанию протокол HTTPS кэшируется. Это управляется глобальным параметром, который не может быть переопределен директивами кэша, определяемыми приложением. Чтобы переопределить глобальный параметр, выберите приложение "Свойства обозревателя" на панели управления и перейдите на вкладку "Дополнительно". Установите флажок "не сохранять зашифрованные страницы на диск" в разделе "безопасность".
Обработка структур со сведениями о размере переменных
CacheTask — задача, появляется после обновления Internet Explorer 8, предназначена для кэширования копий веб-сайтов, которые были посещены пользователем.
Сам кэш реализован в виде файла WebCacheV01.dat (база данных ESE, раньше известная как Jet Blue). Такое кэширование ускоряет работу браузера и открытие ранее посещенных сайтов.
Также найдена информация, что данное задание можно спокойно удалить, особенно если вы не пользуетесь Internet Explorer. Дополнительно в реестре можно удалить раздел . Только сперва нужно получить разрешения — правой кнопкой по мышкой по разделу > выбираем Разрешения > станьте владельцем и предоставьте полный доступ. После удаления — обратно поставьте владельца TrustedInstaller:
У одного человека была проблема — примерно один раз в неделю выскакивала такая ошибка:
DllHost (3648) WebCacheLocal: Повреждена страница теневого заголовка файла C:\Users\User\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat.
Что помогло:
- Очистка папки C:\Users\User\AppData\Local\Microsoft\Windows\WebCache\
- Остановлено и удалено задание CacheTask, которое находится в планировщике по следующему пути — Microsoft > Windows > Wininet
- В реестре (Win + R > команда regedit) был удален идентификатор . PS: чтобы открыть поиск в реестре — зажмите Ctrl + F, далее укажите что искать и нажимайте Найти далее, для продолжения нажимайте F3, пока не будет окошка что поиск окончен.
- Результат — ошибки не было, пропал процесс в диспетчере задач Com Surrogate.
Мое мнение — задачу можно отключить, а потом удалить, особенно если вы не пользуетесь браузером Internet Explorer (а им мало кто пользуется):
Дополнительно конечно не лишним будет создать точку восстановления на всякий случай. Тогда если что — вы сможете произвести откат системы.
Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья!
Привет друзья, изучая неизвестные процессы в диспетчере задач можно обнаружить и wininit.exe, это не какая-то программа, это системный компонент и при том критический важный, то есть если вы его вырубите, то компу будет не очень хорошо — может быть ошибка BSOD (синий экран) и комп уйдет в перезагрузку. Кстати эти BSOD-ошибки не очень хорошо сказываются на здоровье вашего жесткого диска, это вам просто на заметку.
Сама Windows пишет в описании файла, что мол wininit.exe отвечает за автозагрузку программ. Еще известно, что на этапе загрузки ОС, wininit.exe в свою очередь запускает диспетчер управления службами, то есть процесс services.exe (а он уже занимается службами).
Вот этот процесс у меня:
Что можно о нем сказать? Как видите он один, запущен от имени Система, процессор не нагружает и оперативки кушает чучуть. Если у вас их два и один из них запущен не от имени Система — это очень подозрительно и похоже на вирус (были случаи, что под этот процесс маскировался Trojan. Mayachok.1), особенно если еще к этому процесс использует намного больше оперативки чем другой.
Чтобы узнать, где этот процесс живет, вернее где находится файл wininit.exe, то нажмите в диспетчере по нему правой кнопкой и выберите пункт расположение:
Теперь смотрим где этот процесс расположен, как видим это папка C:\Windows\System32, то есть там где и все остальные системные компоненты лежат:
У вас процесс тоже должен быть в этой папке, также можете глянуть на характеристики его, это у меня стоит Windows 10 билд 1511, но думаю что у вас они будут такие же.
Если расположение открывает вам другую папку, например просто C:\Windows, то это уже странно, он там по умолчанию не должен находится, возможно что это специально маскируется вирус, чтобы ввести вас в заблуждение и вы не удаляли его.
Что делать, если думаете что wininit.exe это вирус? Просканируйте комп вот этими инструментаами — Kaspersky Virus Removal Tool и Dr.Web CureIt!, как по мне так они лучшие. Второе, что я еще советую сделать, это проверить комп на рекламные вирусы — их обычные антивирусы не видят, потому что это типо не очень страшные вирусы, тут нужны такие инструменты как AdwCleaner, HitmanPro.
Enumerating the Cache
The FindFirstUrlCacheEntry and FindNextUrlCacheEntry functions enumerate the information stored in the cache. FindFirstUrlCacheEntry starts the enumeration by taking a search pattern, a buffer, and a buffer size to create a handle and return the first cache entry. FindNextUrlCacheEntry takes the handle created by FindFirstUrlCacheEntry, a buffer, and a buffer size to return the next cache entry.
Both functions store an INTERNET_CACHE_ENTRY_INFO structure in the buffer. The size of this structure varies for each entry. If the buffer size passed to either function is insufficient, the function fails and GetLastError returns ERROR_INSUFFICIENT_BUFFER. The buffer size variable contains the buffer size that was needed to retrieve that cache entry. A buffer of the size indicated by the buffer size variable should be allocated, and the function should be called again with the new buffer.
The INTERNET_CACHE_ENTRY_INFO structure contains the structure size, URL of the cached information, local file name, cache entry type, use count, hit rate, size, last modified time, expiration, last access, last synchronized time, header information, header information size, and file name extension.
The FindFirstUrlCacheEntry function takes a search pattern, a buffer that stores the INTERNET_CACHE_ENTRY_INFO structure, and the buffer size. Currently, only the default search pattern, which returns all cache entries, is implemented.
After the cache is enumerated, the application should call FindCloseUrlCache to close the cache enumeration handle.
The following example displays each cache entry's URL in a list box, IDC_CacheList. It uses MAX_CACHE_ENTRY_INFO_SIZE to initially allocate a buffer, since early versions of the WinINet API do not enumerate the cache properly otherwise. Later versions do enumerate the cache properly and there is no cache size limit. All applications that run on computers with the version of the WinINet API from Internet Explorer 4.0 must allocate a buffer of the required size. For more information, see Using Buffers.
Группы кэша
Чтобы создать группу кэша, необходимо вызвать функцию креатеурлкачеграуп , чтобы создать объект GROUPID для группы кэша. Записи можно добавить в группу кэша, предоставив URL-адрес записи кэша и _ флаг добавления группы кэша Интернета в _ _ функцию сетурлкачинтриграуп . Чтобы удалить запись кэша из группы, передайте ее URL-адрес и параметр _ удаления группы кэша Интернета _ _ в сетурлкачинтриграуп.
Функции финдфирстурлкачинтрекс и финднекстурлкачинтрекс можно использовать для перечисления записей в указанной группе кэша. После завершения перечисления функция должна вызвать финдклосеурлкаче.
Использование функций кэша постоянного URL-адреса
Следующие функции кэша постоянных URL-адресов позволяют приложению получать доступ к информации, хранящейся в кэше, и управлять ею.
Функция | Описание |
---|---|
коммитурлкачинтря | Кэширует данные в указанном файле в хранилище кэша и связывает их с заданным URL-адресом. |
коммитурлкачинтрив | Кэширует данные в указанном файле в хранилище кэша и связывает их с заданным URL-адресом. |
креатеурлкачинтри | Выделяет запрошенное хранилище кэша и создает локальное имя файла для сохранения записи кэша, соответствующей имени источника. |
креатеурлкачеграуп | Создает идентификатор группы кэша. |
делетеурлкачинтри | Удаляет файл, связанный с именем источника из кэша, если файл существует. |
делетеурлкачеграуп | Освобождает объект GROUPID и любое связанное состояние в файле индекса кэша. |
финдклосеурлкаче | Закрывает указанный маркер перечисления. |
финдфирстурлкачинтри | Начинает перечисление кэша. |
финдфирстурлкачинтрекс | Начинает фильтрованное перечисление кэша. |
финднекстурлкачинтри | Извлекает следующую запись в кэше. |
финднекстурлкачинтрекс | Извлекает следующую запись в отфильтрованном перечислении кэша. |
жетурлкачинтринфо | Извлекает сведения о записи кэша. |
жетурлкачинтринфоекс | Выполняет поиск URL-адреса после преобразования любых кэшированных перенаправлений, которые будут применены в автономном режиме с помощью хттпсендрекуест. |
реадурлкачинтристреам | Считывает кэшированные данные из потока, открытого с помощью ретриевеурлкачинтристреам. |
ретриевеурлкачинтрифиле | Извлекает запись кэша из кэша в виде файла. |
ретриевеурлкачинтристреам | Предоставляет наиболее эффективный и независимый от реализации способ доступа к данным кэша. |
сетурлкачинтриграуп | Добавляет или удаляет записи из группы кэша. |
сетурлкачинтринфо | Задает указанные элементы структуры _ _ _ сведений об элементе кэша Интернета . |
унлоккурлкачинтрифиле | Разблокирует запись кэша, которая была заблокирована, когда файл был извлечен для использования из кэша ретриевеурлкачинтрифиле. |
унлоккурлкачинтристреам | Закрывает поток, полученный с помощью ретриевеурлкачинтристреам. |
Получение сведений о записи кэша
Функция жетурлкачинтринфо позволяет получить структуру _ _ _ сведений об элементе кэша Интернета для указанного URL-адреса. Эта структура содержит размер структуры, URL-адрес кэшированной информации, имя локального файла, тип записи кэша, число использований, коэффициент попаданий, размер, время последнего изменения, срок действия, Последний доступ, время последней синхронизации, сведения о заголовке, размер сведений о заголовке и расширение имени файла.
Жетурлкачинтринфо принимает URL-адрес, буфер для структуры _ _ _ сведений об элементе кэша Интернета и размер буфера. Если URL-адрес найден, сведения копируются в буфер. В противном случае происходит сбой функции, а GetLastError ВОЗВРАЩАЕТ _ файл ошибки _ не _ найден. Если размер буфера недостаточен для хранения данных записи кэша, функция завершается ошибкой, а GetLastError возвращает ошибку, _ недостаточную для _ буфера. Размер, необходимый для получения сведений, хранится в переменной размера буфера.
В следующем примере извлекается информация о записи кэша для указанного URL-адреса. Затем функция отображает сведения о заголовке в поле ввода _ качедумп IDC .
Cache Groups
To create a cache group, the CreateUrlCacheGroup function must be called to generate a GROUPID for the cache group. Entries can be added to the cache group by supplying the cache entry's URL and the INTERNET_CACHE_GROUP_ADD flag to the SetUrlCacheEntryGroup function. To remove a cache entry from a group, pass the cache entry's URL and the INTERNET_CACHE_GROUP_REMOVE flag to SetUrlCacheEntryGroup.
The FindFirstUrlCacheEntryEx and FindNextUrlCacheEntryEx functions can be used to enumerate the entries in a specified cache group. After the enumeration is complete, the function should call FindCloseUrlCache.
Using the Persistent URL Cache Functions
The following persistent URL cache functions allow an application to access and manipulate information stored in the cache.
Получение файлов записей кэша
Ретриевеурлкачинтрифиле принимает URL-адрес, буфер, в котором хранится структура _ _ _ сведений о записи кэша Интернета , и размер буфера. Функция извлекается и блокируется для вызывающего объекта.
После того как данные в файле будут использованы, приложение должно вызвать унлоккурлкачинтрифиле для разблокировки файла.
Очистка кэша
Очистка кэша периодически удаляет элементы из кэша. Если элемент добавляется в кэш, а кэш полон, элемент добавляется в кэш и планируется очистка кэша. Если очистка кэша завершает очистку, а кэш не достигает предела кэша, то для очистки планируется еще один цикл, когда в кэш добавляется другой элемент. Как правило, очистка планируется, когда добавленный элемент помещает кэш на предельный размер. По умолчанию минимальное время жизни в кэше составляет 10 минут, если иное не указано в директиве Cache-Control. При инициации очистки кэша не гарантируется, что самые старые элементы первыми будут удалены из кэша.
Кэш является общим для всех приложений WinINet на компьютере для одного и того же пользователя. начиная с Windows Vista и Windows Server 2008 размер кэша задается равным 1 или 32-го размер диска, минимальный размер 8 мб и максимальный размер 50 мб.
Перечисление кэша
Функции финдфирстурлкачинтри и финднекстурлкачинтри перечисляют сведения, хранящиеся в кэше. Финдфирстурлкачинтри запускает перечисление, используя шаблон поиска, буфер и размер буфера для создания маркера и возврата первой записи кэша. Финднекстурлкачинтри принимает маркер, созданный финдфирстурлкачинтри, буфер и размер буфера, чтобы вернуть следующую запись кэша.
Обе функции хранят информационную структуру _ _ записи _ в кэше Интернета в буфере. Размер этой структуры различается для каждой записи. Если размер буфера, передаваемый любой из функций, недостаточен, функция завершается ошибкой, а GetLastError возвращает ошибку, _ недостаточную для _ буфера. Переменная размера буфера содержит размер буфера, который был необходим для получения этой записи кэша. Буфер, размер которого определяется переменной размера буфера, должен быть выделен, а функция должна вызываться повторно с новым буфером.
Структура _ _ _ сведений о записи кэша Интернета содержит размер структуры, URL-адрес кэшированной информации, имя локального файла, тип записи кэша, число использований, скорость попаданий, размер, время последнего изменения, срок действия, Последний доступ, время последней синхронизации, сведения о заголовке, размер сведений о заголовке и расширение имени файла.
Функция финдфирстурлкачинтри принимает шаблон поиска, буфер, в котором хранится структура _ _ _ сведений об элементе кэша Интернета , и размер буфера. В настоящее время реализован только шаблон поиска по умолчанию, который возвращает все записи кэша.
После перечисления кэша приложение должно вызвать финдклосеурлкаче , чтобы закрыть обработчик перечисления кэша.
В следующем примере отображается URL-адрес каждой записи кэша в поле со списком, IDC _ качелист. Он использует максимальный _ _ Размер записи _ кэша _ для первоначального выделения буфера, поскольку ранние версии API WinInet не перечисляют кэш должным образом. Более поздние версии выполняют перечисление кэша в правильном объеме и не имеют ограничения на размер кэша. Все приложения, работающие на компьютерах с версией API WinINet из Internet Explorer 4,0, должны выделить буфер требуемого размера. Дополнительные сведения см. в разделе использование буферов.
Using Flags to Control Caching
The caching flags allow an application to control when and how it uses the cache. These flags can be used alone or in combination with the dwFlags parameter in functions that access information or resources on the Internet. By default, the functions store all data downloaded from the Internet.
The following flags can be used to control caching.
Использование флагов для управления кэшированием
Флаги кэширования позволяют приложению управлять тем, когда и как оно использует кэш. Эти флаги можно использовать отдельно или в сочетании с параметром dwFlags в функциях, обращающихся к информации или ресурсам в Интернете. По умолчанию функции хранят все данные, загруженные из Интернета.
Для управления кэшированием можно использовать следующие флаги.
Функции постоянного кэширования
Клиенты, которым требуются постоянные службы кэширования, используют функции постоянного кэширования, чтобы позволить приложениям сохранять данные в локальной файловой системе для последующего использования, например в ситуациях, когда канал с низкой пропускной способностью ограничивает доступ к данным, или доступ вообще недоступен.
Функции кэширования обеспечивают постоянное кэширование и просмотр в автономном режиме. Если флаг Internet _ флаг _ _ _ записи кэша явно не указывает кэширование, функции кэшируют все данные, загруженные из сети. Ответы на POST данные не кэшируются.
Retrieving Cache Entry Information
The GetUrlCacheEntryInfo function lets you retrieve the INTERNET_CACHE_ENTRY_INFO structure for the specified URL. This structure contains the structure size, URL of the cached information, local file name, cache entry type, use count, hit rate, size, last modified time, expiration, last access, last synchronized time, header information, header information size, and file name extension.
GetUrlCacheEntryInfo accepts a URL, a buffer for an INTERNET_CACHE_ENTRY_INFO structure, and the buffer size. If the URL is found, the information is copied into the buffer. Otherwise, the function fails and GetLastError returns ERROR_FILE_NOT_FOUND. If the buffer size is insufficient to store the cache entry information, the function fails and GetLastError returns ERROR_INSUFFICIENT_BUFFER. The size required to retrieve the information is stored in the buffer size variable.
The following example retrieves the cache entry information for the specified URL. The function then displays the header information in the IDC_CacheDump edit box.
Persistent Caching Functions
Clients that need persistent caching services use the persistent caching functions to allow their applications to save data in the local file system for subsequent use, such as in situations where a low-bandwidth link limits access to the data, or the access is not available at all.
The cache functions provide persistent caching and offline browsing. Unless the INTERNET_FLAG_NO_CACHE_WRITE flag explicitly specifies no caching, the functions cache all data downloaded from the network. The responses to POST data are not cached.
Creating a Cache Entry
CreateUrlCacheEntry accepts the URL, expected file size, and file name extension. The function then creates a local file name for saving the cache entry that corresponds to the URL and file name extension.
Using the local file name, write the data into the local file. After the data has been written to the local file, the application should call CommitUrlCacheEntry.
CommitUrlCacheEntry accepts the URL, local file name, expiration, last modified time, cache entry type, header information, header information size, and file name extension. The function then caches data in the file specified in the cache storage and associates it with the given URL.
The following example uses the local file name, created by a previous call to CreateUrlCacheEntry, stored in the text box, IDC_LocalFile, to store the text from the text box, IDC_CacheDump, in the cache entry. After the data has been written to the file using fopen, fprintf, and fclose, the entry is committed using CommitUrlCacheEntry.
Retrieving Cache Entry Files
For applications that require the file name of a resource, use the RetrieveUrlCacheEntryFile and UnlockUrlCacheEntryFile functions. Applications that do not require the file name should use the RetrieveUrlCacheEntryStream, ReadUrlCacheEntryStream, and UnlockUrlCacheEntryStream functions to retrieve the information in the cache.
RetrieveUrlCacheEntryFile accepts a URL, a buffer that stores the INTERNET_CACHE_ENTRY_INFO structure, and the buffer size. The function is retrieved and locked for the caller.
After the information in the file has been used, the application should call UnlockUrlCacheEntryFile to unlock the file.
Создание записи кэша
Креатеурлкачинтри принимает URL-адрес, ожидаемый размер файла и расширение имени файла. Затем функция создает локальное имя файла для сохранения записи кэша, которая соответствует URL-адресу и расширению имени файла.
С помощью имени локального файла запишите данные в локальный файл. После того как данные записаны в локальный файл, приложение должно вызвать коммитурлкачинтри.
Коммитурлкачинтри принимает URL-адрес, имя локального файла, срок действия, время последнего изменения, тип записи кэша, сведения о заголовке, размер сведений о заголовке и расширение имени файла. Затем функция кэширует данные в файле, указанном в хранилище кэша, и связывает его с заданным URL-адресом.
В следующем примере используется локальное имя файла, созданное предыдущим вызовом креатеурлкачинтри, которое хранится в текстовом поле IDC _ локальный_файл, чтобы сохранить текст из текстового поля, IDC _ качедумп, в записи кэша. После записи данных в файл с помощью fopen, fprintf и фклосе запись фиксируется с помощью коммитурлкачинтри.
Cache Behavior During Response Processing
- WinINet only caches HTTP and FTP responses.
- Only well behaved responses may be stored by a cache and used in a reply to a subsequent Request. Well behaved responses are defined as responses that return successfully.
- By default, WinINet will cache successful responses unless either a cache-control directive from the server, or an application-defined flag specifically denote that the response may not be cached.
- In general, responses to the GET verb are cached if the requirements listed above are met. Responses to PUT and POST verbs are not cached under any circumstances.
- Items will be cached even when the cache is full. If an added item is puts the cache over the size limit, the cache scavenger is scheduled. By default, items are not guaranteed to remain more than 10 minutes in the cache. For more information, see the Cache Scavenger section below.
- Https is cached by default. This is managed by a global setting that cannot be overridden by application-defined cache directives. To override the global setting, select the Internet Options applet in the control panel, and go to the advanced tab. Check the "Do not save encrypted pages to disk" box under the "Security" section.
Deleting a Cache Entry
The DeleteUrlCacheEntry function takes a URL and removes the cache file associated with it. If the cache file does not exist, the function fails and GetLastError returns ERROR_FILE_NOT_FOUND. If the cache file is currently locked or in use, the function fails and GetLastError returns ERROR_ACCESS_DENIED. The file is deleted when unlocked.
Удаление записи кэша
Функция делетеурлкачинтри принимает URL-адрес и удаляет связанный с ним файл кэша. Если файл кэша не существует, функция завершается ошибкой, а GetLastError ВОЗВРАЩАЕТ _ файл ошибки _ не _ найден. Если файл кэша в настоящий момент заблокирован или используется, функция завершается ошибкой, а GetLastError возвращает _ отказ в доступе _ . Файл удаляется после снятия блокировки.
Handling Structures with Variable Size Information
The cache can contain variable size information for each URL stored. This is reflected in the INTERNET_CACHE_ENTRY_INFO structure. When the cache functions return this structure, they create a buffer that is always the size of INTERNET_CACHE_ENTRY_INFO plus any variable size information. If a pointer member is not NULL, it points to the memory area immediately after the structure. While copying the buffer returned by a function into another buffer, the pointer members should be fixed to point to the appropriate place in the new buffer, as the following example shows.
Some cache functions fail with the ERROR_INSUFFICIENT_BUFFER error message if you specify a buffer that is too small to contain the cache entry information retrieved by the function. In this case, the function also returns the required size of the buffer. You can then allocate a buffer of the appropriate size and call the function again.
Приложения должны правильно выделить буфер для получения нужных результатов при использовании постоянных функций кэширования URL-адресов. Дополнительные сведения см. в разделе использование буферов.
Читайте также: