O Windows mantém pelo menos duas ControlSet
entradas no registro. Você provavelmente terá ControlSet001
e um (ou possivelmente ambos) de ControlSet002
ou ControlSet003
.
Não há diferença significativa entre estes; eles armazenam informações vitais sobre o hardware, os serviços e outras configurações do sistema necessárias para inicializar e executar o sistema e são geralmente idênticos.
O item CurrentControlSet
é o mais fácil de descrever: ele é simplesmente mapeado em qualquer ControlSet###
que você esteja usando atualmente, assim como HKEY_CURRENT_USER
é mapeado para qualquer usuário da ramificação HKEY_USERS
atualmente ativa. Naturalmente, todas as alterações feitas em CurrentControlSet
serão gravadas no conjunto para o qual ele está mapeado.
O motivo pelo qual você tem vários conjuntos de controles é que, quando você faz uma alteração na forma como o sistema funciona, especialmente no hardware, existe a possibilidade de que isso não funcione. Se houvesse apenas uma cópia das informações necessárias para inicializar e falhasse, você estaria com problemas porque exigiria muito trabalho (e pelo menos um sistema operacional separado, se não um sistema inteiro) para tentar consertar as coisas. . Em vez disso, as alterações são feitas em um conjunto de controle e, se o Windows não puder inicializar com êxito, você poderá reinicializar usando o outro conjunto de controle de pré-alteração. Dessa forma, pelo menos, você volta a trabalhar rapidamente para poder usar o sistema (e a Internet) para descobrir qual era o problema.
Quando você faz consegue inicializar corretamente, as alterações são gravadas na outra cópia, mantendo-a atualizada (acredito que aconteça no desligamento ou em algum momento; apenas não imediatamente após uma inicialização aparentemente bem-sucedida, uma vez que pode ou não ter realmente sido bem-sucedida).
Algumas pessoas interpretam erroneamente os dois conjuntos de controle como sendo o "normal" e o "backup one". Isto é verdade em certo sentido, no entanto, na realidade, você pode estar iniciando a partir de qualquer um. Não há conjunto primário ou secundário e podem ser alternados. Em outras palavras, se você usou normalmente ControlSet001
, então teve uma inicialização com falha, agora você pode estar usando ControlSet002/003
normalmente até a próxima vez que tiver uma falha na inicialização, no ponto em que você retornaria.