Existem vários ramos com “ControlSet” em seus nomes em HKEY_LOCALMACHINE\SYSTEM
.
Quais são as diferenças fundamentais entre a forma como o Windows usa essas 3 chaves?
HKLM\System\ControlSet001
HKLM\System\ControlSet002
HKLM\System\CurrentControlSet
Responder1
A Microsoft diz isso melhor emKB100010
Voltando ao Windows (acho que 95), você pode configurar qualquer componente de driver/hardware para funcionar apenas em um determinado modo de configuração, que pode ser selecionado pelo usuário na inicialização.
Por padrão, você tem
\ControlSet001 – Última inicialização
\ControlSet002 - Configurações boas conhecidas
\CurrentControlSet - inicialização atual
Editar -
Parece que isso só foi retirado recentemente, eu pessoalmente nunca o usei desde 95, no entanto, encontrei umbom site que pode mostrar isso no Windows XP.
Nas propriedades do sistema:
E do gerenciador de dispositivos:
Responder2
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 contêm informações vitais sobre o hardware, serviços e outras configurações do sistema necessárias para inicializar e executar o sistema e geralmente são idênticos.
O CurrentControlSet
item é o mais fácil de descrever: ele é simplesmente mapeado para qualquer usuário ControlSet###
que você esteja usando no momento, assim como HKEY_CURRENT_USER
é mapeado para qualquer usuário da HKEY_USERS
ramificação que esteja ativo no momento. Naturalmente, quaisquer alterações feitas CurrentControlSet
serão gravadas no conjunto para o qual estão mapeadas.
A razão pela qual você tem vários conjuntos de controle é que, quando você faz uma alteração no funcionamento do sistema, 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 ela falhasse, você estaria em apuros 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 controles e, se o Windows não conseguir inicializar com êxito, você poderá reinicializar usando o outro conjunto de controles pré-alteração. Dessa forma, pelo menos você volta a funcionar rapidamente para poder usar o sistema (e a Internet) para descobrir qual era o problema.
Quando vocêfazerconsegue inicializar corretamente, as alterações são gravadas na outra cópia, mantendo-a atualizada (acredito que isso aconteça no desligamento ou em algum momento; apenasnãoimediatamente após uma inicialização aparentemente bem-sucedida, pois pode ou não terna verdadeteve sucesso).
Algumas pessoas interpretam erroneamente os dois conjuntos de controle como sendo o “normal” e o “backup”. Em certo sentido, isso é verdade, mas, na realidade, você pode estar inicializando a partir de qualquer um deles. Não há conjunto primário ou secundário e eles podem ser alternados. Em outras palavras, se você usou normalmente ControlSet001
e teve uma inicialização com falha, agora você poderá usar ControlSet002/003
normalmente até a próxima vez que ocorrer uma falha na inicialização, momento em que você retornará.