Каталог dllcache и с чем его едят.

December 5th, 2006

Тут в комментариях зашла речь о роли каталога “%SystemRoot%\system32\dllcache” и причинах почему он занимает столько места. Отвечаю здесь, так как это может быть интересно многим.

Для того чтобы убедиться, что каталог dllcache – это всего лишь никак не используемая свалка копий исполняемых модулей достаточно воспользоваться утилитой ProcessExplorer. В среднем это около пол гига украденных у пользователя. Даже, если это был бы действительно кеш, любому маломальски опытному человеку понятно, что скорость доступа к файлам в каталоге такой длинны будем еще хуже чем к их оригиналам.

Похоже, что разработчики выбрали не очень удачное имя для этого каталога. Назови они его “wfpcache” или “wfpshadow” или ещё как-нибудь и никто бы не подумал, что этот каталог используется для улучшения производительности, путем кеширования библиотек.

На самом деле, dllcache используется службой Windows File Protection (WFP). Главная и единственная её задача состоит в обеспечении целостности системных файлов. В двух словах WFP хранит копию каждого защищаемого файла в каталоге dllcache и использует эту копию для восстановления файла, если кто-либо пытается заменить или изменить защищаемый файл.

Подробно о WFP написано вот здесь: Windows File Protection guide. (Ссылка нашлась в блоге Robert Bogue). Это руководство отвечает на все вопросы, касающиеся WFP. Я лишь резюмирую что там написано:

  • В dllcache храняться копии большей части системных файлов. В результате dllcache может занимать довольно значительный объем;
  • dllcache может расти со временем – по мере появления новых системных файлов. Например после установки ежемесячных обновлений системы;
  • WFP конфигурируется через глобальные политики (global policy) или с помощью утилиты sfc.exe. Помимо прочего, можно задать максимальный размер каталога dllcache. (Не уверен, что это работает на Vista);
  • WFP можно отключить совсем, хотя это и не документировано и может привести к плачевным последствиям.

PS: Про назначение каталога “%SystemRoot%\Installer” напишу немного позднее.

  1. December 5th, 2006 at 16:01 | #1

    Крайне Вам признателен за ответ

  2. masha
    November 7th, 2007 at 00:12 | #2

    > WFP можно отключить совсем, хотя это и не документировано и может привести к плачевным последствиям.

    А как?

    • Not a kernel guy
      November 7th, 2007 at 12:44 | #3

      Выше в тексте есть фраза со ссылкой:

      Подробно о WFP написано вот здесь: Windows File Protection guide

  1. No trackbacks yet.
Comments are closed.