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

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

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

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

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

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

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

comments powered by Disqus