Impedir que o Windows 7 habilite a economia de energia no hub USB 3.0

14

Eu instalei um hub USB 3.0 no meu computador desktop.

Uso-o para conectar um disco USB 3.0 externo para fins de backup e tenho um problema: o Windows 7 habilita por padrão a economia de energia para o referido hub, o que faz com que o disco seja desconectado durante operações intensas de E / S (por exemplo, meu backup agendado às 8 PM).

Para desativar essa configuração, faça o seguinte:
Vá para o Gerenciador de dispositivos> Clique com o botão direito do mouse no hub> Propriedades> Gerenciamento de energia> Desmarque Permitir que o computador desligue este dispositivo para economizar energia

Pena que, toda vez que eu reinicio o computador, a caixa é marcada novamente. Existe uma maneira de desativar essa configuração permanentemente?

EDIT : editei minha pergunta com os nomes reais em inglês para as configurações acima (não estava muito claro antes).

Edição :A resposta de Peter Fitzgerald descreve exatamente o que tenho feito até agora. Sempre que reinicio a caixa de seleção é marcada novamente, estou procurando uma maneira de desativá-la permanentemente.

EDIT : depois de lera resposta da Synetech , consegui rastrear a entrada do registro que é alterada quando altero a configuração, que é:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FLUSB\ROOT_HUB_FL30\5&f0b5d82&1\Device Parameters\WDF\IdleInWorkingState (DWORD)

Essa chave é alterada pelo Console de Gerenciamento sempre que desmarca a caixa de seleção e também quando desativo e reativo o dispositivo pelo processo Sistema. Pena que qualquer configuração nas autorizações é misteriosamente ignorada e, mesmo negando todos os privilégios a todos, a chave é sempre definida como 1.

Tentei pesquisar online e encontrei este guia da Microsoft . Tentar definir todas as chaves descritas não ajudou, parece que essas chaves são ignoradas. Eu até tentei copiar o caminho certo para que as teclas existentes .INF encontrados on-line (que chaves para colocar sob /WDFe quais as chaves para colocar sob o pai), como este , mas eu não tenho nada.

Outras informações úteis:

  • embaixo HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FLUSB\ROOT_HUB_FL30\, também tenho essas duas vozes: 5&f0b5d82&0e 5&21f33a01&0, que parece refletir a configuração da tecla acima. A única IdleInWorkingStatemudança, no entanto, é a descrita acima.
  • quando edito manualmente o registro, o valor da caixa de seleção no Gerenciador de dispositivos não muda, ele deve ser armazenado em cache em algum lugar.
scristalli
fonte
@ and31415: não, não é. Eu tive que desativar isso também há muito tempo, mas permanece assim após a reinicialização.
Scritalli
Está definido como Desativado: Painel de controle -> Opções de energia -> Alterar configurações do plano -> Alterar configurações avançadas de energia -> Configurações USB -> Configuração de suspensão seletiva de USB.
harrymc
@ harrymc, se você ler os 2 comentários acima, verá que eu já o desativei.
scristalli
Qual a marca do seu USB3? O meu não possui uma guia "Gerenciamento de energia" e nunca desliga completamente.
22414 harrymc

Respostas:

6

Requerimentos poderosos

Eu instalei um hub USB 3.0 no meu computador desktop. Uso-o para conectar um disco USB 3.0 externo para fins de backup e tenho um problema: o Windows 7 habilita por padrão a economia de energia para o referido hub, o que faz com que o disco seja desconectado durante operações intensas de E / S

Você tem certeza de que a unidade está sendo desligada para gerenciamento de energia e não simplesmente porque está tentando consumir muita energia? Você pode verificar o consumo de energia no seu hub USB através do Gerenciador de dispositivos (figuras 1 e 2). Verifique se a energia que o hub pode fornecer por porta é suficiente para a unidade externa. Caso contrário, você poderá usar um adaptador Y USB (figuras 3 e 4) para obter energia de duas portas. (As unidades externas de alto consumo geralmente vêm com um adaptador Y especificamente para essa finalidade, portanto, verifique duas vezes a caixa e o manual.)

Rastreando a doença

Para desativar essa configuração, faça o seguinte: Vá para o Gerenciador de dispositivos> Clique com o botão direito do mouse no hub> Propriedades> Gerenciamento de energia> Desmarque Permitir que o computador desligue este dispositivo para economizar energia

Pena que, toda vez que eu reinicio o computador, a caixa é marcada novamente. Existe uma maneira de desativar essa configuração permanentemente?

Se a desativação dessa configuração realmente resolver o problema em questão, o problema agora é fazê-lo permanecer e não reverter. Uma opção é usar algo como Process Monitor com um filtro definido para a entrada de registro relevante ( HcDisableSelectiveSuspend) para ver qual programa o altera para que a opção seja desativada (ela deve ser configurada 1para desativar o gerenciamento de energia).

Esse seria o método ideal porque rastreia a causa real da reversão da configuração. Infelizmente isso só encontra a causa; corrigi-lo pode não ser fácil ou até possível. Por exemplo, o Windows pode revertê-lo automaticamente no desligamento ou, mais provavelmente, o define como padrão durante a inicialização quando ele detecta o hardware.

Definindo "Dispositivo"; Verifique a porta USB

Aliás, você está conectando a unidade em diferentes portas USB? No que diz respeito ao Windows, um "dispositivo conhecido" é um emparelhamento de dispositivo + porta ; portanto, se você já conectou um dispositivo à porta A e permitiu que o Windows instale drivers para ele, conecte posteriormente o dispositivo de salvamento à porta B, O Windows o verá como um novo dispositivo e (re) instala drivers para ele, juntamente com as configurações padrão. Portanto, você deve redefinir todas as configurações ao conectá-lo a uma nova porta. Depois disso, o Windows deve lembrar as configurações da porta nova e antiga. Você pode conectar suas unidades uma vez a cada porta USB e configurá-las para ter certeza de que todas elas serão configuradas no futuro, independentemente da porta em que elas forem conectadas. (O mesmo vale para letras de unidade, mas essas tendem a ser um pouco menos confiáveis ​​devido à natureza efêmera das letras de unidade para volumes removíveis.

Tratar o sintoma

Uma maneira de impedir que o Windows reverta a configuração é simplesmente negar o acesso à configuração. Isso requer o uso do editor de registro, que pode ser arriscado se você não tomar cuidado; portanto, tome as precauções habituais de backup e verifique duas vezes antes de fazer uma alteração (especialmente ao excluir algo - o que você não deveria fazer aqui de qualquer maneira).

  1. Primeiro, você precisará encontrar o ID do dispositivo relevante:

    1. Abra a caixa de diálogo Propriedades do hub raiz USB do seu hub no Gerenciador de dispositivos (figura 1) e, em seguida, mude para a guia Gerenciamento de energia
    2. Altere o valor da Allow to turn offcaixa de seleção (não importa para quê, apenas altere ), mas não clique OK(figura 5)
    3. Execute o Process Manager e defina um filtro (figura 6):
      1. Ctrl+L
      2. Definido para Path, contains, DisableSelectiveSuspend,Include
      3. Clique Add
      4. Definir outro filtro para Operation, contains, setvalue,Include
      5. Add
      6. Clique OK
    4. Limpe a captura atual ( Ctrl+ X) e inicie ( Ctrl+ E) se ainda não estiver em execução
    5. Volte para a caixa de diálogo Gerenciador de dispositivos e clique emOK
    6. Volte para o Process Monitor e pare a captura ( Ctrl+ E)
    7. Anote o ID do dispositivo de quatro dígitos após o GUID (figura 7); neste exemplo 0055:

      HKLM\System\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0055\HcDisableSelectiveSuspend
      
  2. Clique na linha no Process Monitor, pressione Ctrl+ Jpara abrir o Regedit e navegue diretamente para a tecla (se isso não funcionar, abra o Regedit e navegue manualmente para a tecla)

  3. Defina a configuração como deseja pela última vez (desmarque a caixa na guia Gerenciamento de energia e clique em OK)

  4. Agora bloqueie essa configuração e bloqueie o acesso à chave (figura 8):

    1. Clique com o botão direito do mouse na chave no painel esquerdo do Regedit
    2. Selecionar permissões
    3. Clique Advanced
    4. Un -Verifique a Inherit from parentcaixa, em seguida, clique CopyeOK
    5. De volta à caixa de diálogo de permissões regulares (não avançadas), clique em cada um dos grupos e usuários listados na lista superior e, para cada um, desmarque a Full Controlcaixa na lista inferior

Agora ninguém, nem você, nem o próprio sistema poderá modificar a configuração (mas eles ainda podem lê-la); portanto, ele deve sempre permanecer no que você definiu antes de configurá-lo como somente leitura. (Se necessário, você pode restaurar o acesso de gravação removendo as permissões específicas do item na caixa de diálogo Configurações de segurança avançadas e marcando novamente a Inherit from parentcaixa.

Obviamente, você precisará reiniciar depois para garantir que a configuração permaneça.

Último recurso

Se a unidade estiver ainda desligar, tente definir HKLM\System\CurrentControlSet\Services\usb\DisableSelectiveSuspenda 1e tornando-a read-only como acima. Essa configuração não está presente em um sistema normal, nem está documentada como HcDisableSelectiveSuspend (as únicas referências a ela estão nas páginas da comunidade), mas o Windows parece consultar esse valor antes HcDisableSelectiveSuspend(figura 7), portanto vale a pena tentar.

Sherlock Holmes

Nesse ponto, se desejar, você pode voltar e diagnosticar o problema subjacente em vez de apenas tratar o sintoma. Você pode usar o filtro acima para fazer com que o Monitor de Processos registre o acesso de gravação à entrada do registro durante a inicialização ( Opções → Ativar Log de Inicialização ) e durante o desligamento (o que é um pouco mais complicado ) para descobrir exatamente o que está sendo alterado. Então você pode cruzar os dedos e esperar que haja uma maneira de evitá-lo.


Ilustrações

Figura 1 : Captura de tela do hub USB no Gerenciador de dispositivos

Captura de tela do hub USB no Gerenciador de dispositivos

Figura 2 : Captura de tela da energia consumida em um hub USB

Captura de tela do consumo de energia em um hub USB

Figura 3 : Foto de um adaptador Y USB

Foto de um adaptador Y USB

Figura 4 : Diagrama do uso do adaptador Y USB

Diagrama de uso do adaptador Y USB

Figura 5 : Captura de tela da guia Gerenciamento de energia do hub USB

Captura de tela da guia Gerenciamento de energia do hub USB

Figura 6 : Filtros necessários do Monitor de processo

Captura de tela dos filtros necessários do Monitor de processo

Figura 7 : Captura de tela da entrada de registro relevante nos resultados do Process Monitor

Captura de tela da entrada de registro relevante nos resultados do Process Monitor

Figura 8 : Diagrama de fluxo da configuração de uma chave do registro como somente leitura

Diagrama de fluxo da configuração de uma chave do Registro como somente leitura

Synetech
fonte
Primeiro de tudo, obrigado pela sua resposta incrível, ela definitivamente está na pole position pela recompensa. Segui o seu conselho e, apesar de ter descoberto detalhes adicionais, o problema ainda não está resolvido. Editei minha pergunta de acordo. Espero que você possa obter informações adicionais com minha edição.
scristalli
2

Entre no Gerenciador de dispositivos, expanda a lista de árvores em "Controladores universais de barramento serial", clique com o botão direito do mouse na entrada do dispositivo e selecione propriedades.

insira a descrição da imagem aqui

Vá para a guia "Gerenciamento de energia" na caixa de diálogo de propriedades e desmarque a caixa "Permitir que o computador desligue este dispositivo para economizar energia".

insira a descrição da imagem aqui

Se você estiver usando um laptop, talvez também seja necessário acessar as configurações avançadas do plano de energia e desabilitar a opção que permite ao Windows reduzir a energia dos dispositivos quando não estiverem em uso.

P Fitz
fonte
Obrigado pela sua resposta. Sinto muito se não ficou claro em minha pergunta (eu uso o Win 7 em italiano e tentei traduzir rapidamente), mas é exatamente isso que tenho feito até agora.
Scristalli 5/05
Eu editei minha pergunta. Obrigado novamente, mas parece que a solução não é tão fácil.
Scristalli
2

Como nenhuma das outras soluções funcionou, resolvi com a seguinte solução alternativa:

Script do PowerShell para desativar a configuração

Editando um script encontrado na Internet, eu criei isso:

C: \ powerMgmt.ps1

$hubs = Get-WmiObject Win32_USBHub
$powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.Contains($hubs.PNPDeviceID)}

foreach ($p in $powerMgmt)
{
    $p.Enable = $False
    $p.psbase.Put()
}

Executando na inicialização com privilégios elevados

O script acima requer privilégios elevados, por isso criei uma tarefa no Agendador de Tarefas do Windows 7 para executar o seguinte script (como administrador do usuário) ao efetuar login com meu usuário:

C: \ powerMgmt.cmd

powershell -file C:\powerMgmt.ps1

Essa coisa toda é meio que um hack; não é elegante e não me ajuda a entender o problema, mas resolve-o.

scristalli
fonte
0

Você deseja editar seu registro.

  1. abra o regedit.exe e execute como administrador.

    a) clique em Iniciar> digite regedit na caixa de pesquisa> clique com o botão direito em regedit.exe> ​​selecione "executar como administrador"

  2. Cancelar o recolhimento [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \

    a) clique com o botão direito do mouse em serviços> passe o mouse sobre "novo" e selecione "chave"

    b) digite "USB"

    c) Navegue até "USB"> clique com o botão direito do mouse em USB

    d) passe o mouse sobre "novo" e selecione "Valor DWORD (32 bits)

    e) altere o valor padrão para "DisableSelectiveSuspend"

    f) Selecione DisableSelectiveSuspend> clique em "Editar"> "Modificar"

    g) em "Dados do valor:"> altere o 0 para 1> clique em OK.

  3. Reinicie o computador. Seu problema deve ser resolvido.

Se você estiver desconfortável editando seu registro. Você pode abrir o bloco de notas, recortar e colar o texto abaixo no bloco de notas e salvar o arquivo com qualquer nome, diga "temp.reg", ele deve ter a extensão ".reg" e não uma extensão ".txt". Se você salvar o arquivo na pasta "Documentos", clique duas vezes no arquivo no Windows Explorer e os valores do Registro serão criados para você. Aqui está o texto para colar no bloco de notas, incluir tudo nas entrelinhas.


Editor do Registro do Windows versão 5.00

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ USB] "DisableSelectiveSuspend \" "= dword: 00000001


Se você usar o método de arquivo .reg, reinicie o computador e seu problema deverá ser resolvido.

user305084
fonte
Obrigado por tentar, mas não funcionou.
scristalli
0

Você pode tentar excluir completamente o driver e limpar as informações antigas sobre USB:

  1. Vá para o Gerenciador de dispositivos, abra "Controladores de barramento serial universal", clique com o botão direito do mouse no hub raiz USB e escolha Desinstalar.

  2. Use regedit para excluir HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FLUSB.
    Em caso de erro de permissão, consulte Como assumir o controle total das chaves do Registro do Windows (incluindo os comentários). O utilitário gratuito RegOwnit pode ajudar aqui (eu nunca o usei).

  3. Reinicie.

Crie primeiro um ponto de restauração do sistema, apenas por precaução.

Outra solução seria usar um driver mais antigo, que pode ser combinado com o procedimento acima.

Aqui estão dois que eu encontrei:
3.5.36.0, A01
Fresco Logic USB 3.0 Driver 3.5.93.0

harrymc
fonte
0

Você pode configurar vários esquemas de gerenciamento de energia diferentes, mas você selecionou um (como "Balanceado" ou "Alto desempenho"). O Windows provavelmente está carregando o esquema de gerenciamento de energia que você selecionou e , provavelmente, o gerenciamento de energia USB não está desativado.

No menu Iniciar, digite "Editar plano de energia" e selecione a opção para aquela que o menu Iniciar encontra. Existem outras maneiras de chegar a essa janela também, como através das configurações de personalização nas quais você define seu protetor de tela.

Uma vez lá, você precisa "Alterar configurações avançadas de energia".

Em seguida, vá para "Configurações USB", depois para "Configuração seletiva de suspensão USB" e altere a configuração aqui .

Aqui está um artigo que outra pessoa escreveu sobre o seu problema. Nele existem instruções e imagens semelhantes.

Loduwijk
fonte
Obrigado por responder, mas, embora não tenha certeza de ter mencionado aqui, foi a primeira coisa que tentei. Não deu certo. Atualmente, a única solução que funciona é a que eu postei, com o script Powershell desativando a configuração no login.
scristalli