Problemas e Soluções: Micro Acordando Constantemente por Ponte PCI para PCI (PCI\VEN_1022&DEV_1483&SUBSYS_87C01043&REV_00\3&11583659&0&19) - Skooter Blog
Início » Problemas e Soluções: Micro Acordando Constantemente por Ponte PCI para PCI (PCI\VEN_1022&DEV_1483&SUBSYS_87C01043&REV_00\3&11583659&0&19)
Investigando a árvore do dispositivo no HWiNFO.
Este problema vinha ocorrendo com o meu PC após a atualização com a Placa-Mãe ASUS ROG Crosshair VIII Hero Wi-Fi AMD X570 e Processador AMD Ryzen 9 3900X. Isto parece ter iniciado após algumas atualizações do Windows, inclusive de drivers opcionais enquanto eu estava tentando resolver um problema de travamentos com tela azul.
Problema: O micro começou a acordar pouco tempo após dormir (suspensão). Ele entra em estado de espera e logo (após cerca de 20~30 minutos) é acordado.
Para investigar o problema abri o Windows Powershell como administrador e usei o seguinte comando:
powercfg - lastwake
Contagem de Histórico de Ativação - 1
Histórico de Ativação [0]
Contagem da Origem de Ativação - 1
Origem de Ativação [0]
Caminho da Instância: PCI\VEN_1022&DEV_1483&SUBSYS_87C01043&REV_00\3&11583659&0&19
Nome Amigável:
Descrição: Ponte PCI para PCI
Fabricante: (Dispositivos padrão do sistema)
Usando powercfg -lastwake para descobrir quem acordou o PC.
Atenção para a string do caminho da instância. Usando o HWiNFO64 encontrei esta mesma string batendo com o seguinte dispositivo AMD Starship/Matisse/Vermeer – PCIe GPP Bridge[7:0].
Notei que todos os itens na árvore deste dispositivo estão relacionados com a placa de vídeo.
Em seguida, voltei no Powershell e usei o seguinte comando:
Obtive então essa lista:
Mouse compatível com HID (001)
Mouse compatível com HID (008)
Dispositivo de teclado HID (008)
Investigando que dispositivos podem acordar o PC com o powercfg -wakearmed.
Aqui chama a atenção o dispositivo NVIDIA USB Type-C Port Policy Controller que é o único relacionado com a placa de vídeo. Ele também é listado lá no HWiNFO64 como NVIDIA TU106 – USB Type-C Port Policy Controller.
Localizei este dispositivo no gerenciador de dispositivos, abri suas propriedades e notei que na aba Gerenciamento de Energia, ele estava com permissão para acordar o computador. Desmarquei a caixa de seleção Permitir que este dispositivo acorde o computador.
Desativando a permissão de acordar o PC no Gerenciador de Dispositivos.
Isto resolve o problema temporariamente. Porém, ao reiniciar o computador esta opção volta sempre marcada novamente, e aí o problema retorna. Para contorna-lo criei um arquivo batch com o seguinte comando:
powercfg -devicedisablewake "NVIDIA USB Type-C Port Policy Controller"
Em seguida, coloquei este batch para ser executado em cada inicialização do sistema, usando o Agendador de Tarefas do Windows, e lembrando de marcar para executar com privilégios de administrador e estando o usuário conectado ou não.
Mas um novo problema surgiu, agora outra Ponte PCI para PCI passou a acordar o PC:
Caminho da Instância: PCI\VEN_1022&DEV_1483&SUBSYS_87C01043&REV_00\3&11583659&0&0A
O dispositivo que corresponde a essa string do caminho da instância tem muitos mais elementos em suas ramificações do que a outra.
Foquei então na lista de dispositivos com permissão para acordar o PC:
GRUPO : Ethernet Team - Intel(R) I211 Gigabit Network Connection
GRUPO : Ethernet Team - Realtek PCIe 2.5GbE Family Controller
Aqui notei algo estranho: são 3 teclados e 2 mouses. Observando o gerenciador de dispositivos achei 6 teclados e 5 mouses. Dentre os teclados, havia um teclado virtual "em Corsair composite virtual input device" e outro "em Logitech G HUB Virtual Keyboard". Também achei um mouse "em Corsair composite virtual input device". Essas são as strings que aparecem como local do dispositivo. Porém, esses dispositivos virtuais, provavelmente criados por Logitech G Hub e Corsair iCUE, não tem permissão para acordar o PC. Além disso, teclado e mouse nem aparecem na lista de dispositivos sob aquela Ponte PCI para PCI que está acordando o PC.
Minha tentativa então foi de tirar a permissão de acordar o PC do adaptador WiFi, que é um "Intel (R) Wi-Fi 6 AX200 160 MHz". Eu estou usando as conexões Ethernet e o WiFi está ocioso, então resolvi fazer um teste. De qualquer forma, o adaptador WiFi estava configurado para acordar o PC apenas ao receber um pacote mágico, assim como os adaptadores Ethernet.
E… Problema resolvido! Agora o micro pode dormir em paz até ser acordado pelo teclado, pelo mouse, por um "pacote mágico" Wake-on-LAN nos adaptadores Ethernet, ou por algum evento agendado no Agendador de Tarefas, mas não fica mais acordando aleatoriamente.
Por que o "NVIDIA USB Type-C Port Policy Controller" ficava acordando o PC? Isto continua sendo uma incógnita para mim, mas pelo menos o problema foi devidamente contornado. Já vi o problema relatado em algumas mensagens no forum da NVidia, mas sem solução. É provável que a NVidia precise resolver isso em seus drivers e softwares.
Por que o adaptador WiFi ficava acordando o PC mesmo estando configurado para fazer isso apenas quando recebesse algum pacote mágico? Também fiquei sem saber. Nesse caso é possível que alguma atualização de driver resolva o problema. Estou usando a versão 21.10.2.2 de 13/05/2019 e sei que existem versões mais novas, mas não instalei ainda porque estou investigando alguns problemas de tela azul que parecem estar relacionados com driver.