Por que preciso manter “$ hf_mig $”?

4

Após ter lido a explicação da Microsoft e também alguns outros , ainda não entendi:

When a security update, critical update, update, update rollup, driver, or feature pack installs GDR version files, the hotfix files are also copied to the %windir%\$hf_mig$ folder. This supports migration to the appropriate files if you later install a hotfix or service pack that includes earlier versions of these files. For example, consider the following scenario:

You apply a security update that installs a GDR version of File.dll with a version number of 5.2.3790.1000 and copies a hotfix version of File.dll with a version number of 5.2.3790.1000 to the %windir%\$hf_mig$ folder.

You apply a hotfix that includes a hotfix version of File.dll with a version number of 5.2.3790.0000.

In this scenario the hotfix installation in step 2 installs the hotfix version of File.dll (version number 5.2.3790.1000) from the %windir%\$hf_mig$ folder instead of the hotfix version of File.dll (version number 5.2.3790.0000) from the hotfix package.

Eu não entendi. Por que não desta maneira:

  • Você aplica a primeira coisa que contém a versão 5.2.3790.1000 , a versão antiga é substituída.
  • Você aplica a segunda coisa que contém a versão 5.2.3790.0000 , o atualizador descobre que sua versão é mais recente e deixa o arquivo sozinho.

As vantagens são óbvias, então eu estou entendendo errado?

    
por maaartinus 19.09.2011 / 19:36

1 resposta

2
  • Nem todos os recursos são instalados de uma só vez. Um patch pode entregar um file.dll atualizado que nada está usando. Posteriormente, você instala um recurso usando file.dll e obtém a versão mais recente que o sistema pode fornecer - que não é necessariamente a que está na mídia de instalação.
  • Você remove um recurso. file.dll é removido de %systemroot%\system32 . Mais tarde, você reinstala o recurso (ou outro programa / recurso que requer file.dll ). Se você não tiver a versão em cache em $hf_mig$ , você terá uma versão insegura ou instável de file.dll . Se você é especialmente desafortunado, ele foi instalado por meio de algum método que impede que o Windows Update perceba corretamente a versão antiga do arquivo.
  • Os patches costumavam ser entregues para diferentes níveis de SP de uma só vez. Se você não estivesse executando o service pack mais recente, a instalação do service pack instalaria versões antigas de file.dll sem as versões armazenadas em cache em $hf_mig$ . Ou diga que você precisa desinstalar um SP - você será revertido para as versões mais recentes disponíveis em $hf_mig$ , em vez do que foi entregue com o SP2 (vs. SP3), o que minimizará o número de atualizações necessárias faça o download novamente pelo Windows Update.
  • IIRC, isso também pode ser usado para rastrear arquivos sem versão e verificar se eles estão atualizados o máximo possível.

Basicamente, ele é usado em cenários nos quais os recursos, patches e service packs do Windows são adicionados e removidos após a instalação e atualização inicial do sistema. Se tudo o que você fizer é instalar o Windows, vá para Adicionar / Remover Recursos logo depois, e só adicione atualizações ao seu sistema, isso pode não fazer muito sentido. Para todos os outros que podem ter a oportunidade de reverter um patch incorreto, desinstalar um SP mal-comportado ou adicionar um recurso ao Windows muito mais tarde no ciclo de vida de um sistema, é necessário garantir que as versões mais recentes dos arquivos possam ser entregues possível, em vez de exigir que o usuário execute novamente a atualização do Windows após cada pequena alteração no sistema.

    
por 19.09.2011 / 20:05