A pasta WinSxS é crucial para o Windows. Localizada em C:\Windows\WinSxS, ela armazena os arquivos do Repositório de Componentes, que são essenciais para reparar e restaurar o sistema operacional.
Ela também guarda os arquivos dos Pontos de Restauração, criados manualmente pelo usuário ou automaticamente antes de grandes atualizações do Windows Update.
Embora possa ocupar vários gigabytes de espaço, remover a pasta WinSxS jamais deve ser cogitado.
Ela é fundamental para o funcionamento do Windows. Excluir seus arquivos ou a pasta inteira pode danificar seriamente o Windows, impedindo sua inicialização na próxima vez que você ligar o computador.
Reparo e restauração do sistema: a pasta WinSxS contém os arquivos necessários para reparar o Windows caso ele seja danificado ou corrompido. Sem essa pasta, você não poderá restaurar o sistema operacional.
Atualizações do Windows: ela armazena os arquivos necessários para instalar e desinstalar atualizações do Windows. Sem essa pasta, você não poderá instalar as atualizações de segurança e outras atualizações importantes.
Compatibilidade de aplicativos: A pasta WinSxS também contém os arquivos necessários para garantir que os aplicativos sejam compatíveis com o Windows. Sem essa pasta, alguns aplicativos podem não funcionar corretamente
A pasta WinSxS utiliza o conceito de “hard links“, fazendo com que arquivos que aparecem dentro desta pasta não estejam fisicamente ali, mas sim em outras pastas. Isso faz com que a pasta WinSxS pareça ser muito maior do que ela realmente é.
O uso de hard links permite que diferentes versões de um mesmo arquivo (e que têm o mesmo nome) pareçam estar dentro dessa pasta, quando na realidade eles estão em outras pastas. Isso permitiu solucionar o problema do “DLL Hell” que era o conflito de DLL existia nos anos 2000, detalhado mais abaixo
Para saber o tamanho REAL da pasta WinSxS, execute esse comando via Prompt de Comando (Admin):
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
No exemplo abaixo a pasta WinSxS tem 7,89GB, embora o tamanho dela é de 5,59GB, sendo 2,33GB relacionado a componentes do Windows e 3,26GB para outros arquivos.
O Windows diminui automaticamente o tamanho da pasta WinSxS ao desinstalar e remover pacotes com componentes substituídos por versões mais atualizadas.
Em alguns casos, o sistema operacional mantém componentes antigos necessários para desinstalar uma atualização recente e que são removidos automaticamente após 30 dias.
O Windows mantém componentes antigos na pasta WinSxS quando eles s/ao necessários para desinstalar uma atualização recente e também para garantir a compatibilidade com aplicativos mais antigos que estejam instalados.
Para reduzir o tamanho da pasta WinSxS , basta executar o comando abaixo em um Prompt de Comando (Admin), levando em conta essa informação:
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
O DLL Hell (“Inferno de DLL”) acontecia nos anos 90 quando alguns arquivos (bibliotecas) .dll eram compartilhados entre vários programas – e quando algum programa atualizava um desses arquivos para uma versão mais nova, isso impedia que os demais programas que utilizavam esse arquivo funcionassem corretamente.
E quando o programa que não funcionava corrigia o problema reinstalando a versão anterior do arquivo .dll, outros programas que utilizavam uma versão diferente desse mesmo arquivo deixavam de funcionar. Esse círculo vicioso de arquivos .DLL foi apelidado de DLL Hell.
A Microsoft resolveu o DLL Hell no Windows 98SE com a pasta WinSxS (“Side by Side” cuja tradução é “Lado a Lado”), uma funcionalidade que permite que o Windows execute simultaneamente várias bibliotecas DLL que tenham o mesmo nome, mas versões diferentes, em uma mesma pasta, sem haver nenhuma incompatibilidade ou problema.
Isso é possível pois a pasta WinSxS utiliza o conceito de “hard links“, onde arquivos com o mesmo nome estão armazenados em pastas diferentes, mas parecem estar em uma mesma pasta – algo impossível de acontecer por eles terem o mesmo nome.
Isso permite que arquivos iguais com versões diferentes estejam na pasta WinSxS, embora eles estejam armazenanados em outras pastas.
Embora o WinSxS tenha resolvido definitivamente esse problema, o armazenamento de várias bibliotecas iguais exige mais espaço em disco do que se houvesse apenas uma única versão dela – embora esse problema é minimizado hoje em dia com discos rígidos e SSD com capacidades cada vez maiores.
Se você quer saber quais são as bibliotecas (.dll) que estão sendo compartilhadas no seu Windows, abra o Registro e acesse a chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs. Ali você tem a lista das bibliotecas e quantos programas estão compartilhando elas (número entre parêntese em Dados):
Quando um dos programas que compartilha essa biblioteca DLL é desinstalado, ele diminui 1 do valor do total de programas compartilhados, e quando um novo programa é instalado, ele adiciona 1 ali.
Algumas empresas curiosamente colocam valores altíssimos em bibliotecas que ela não quer que sejam desinstaladas, como a Microsoft faz no caso do .NET Framework 1.0 que indica 4096 programas compartilhando os arquivos dele:
Eu abordo mais informações sobre a pasta WinSxS e o DLL Hell na aula 18 do curso W11FP: