Por que temos que reconectar fisicamente uma unidade USB para “ler” novamente? [duplicado]

2

Por exemplo, depois de ejetar a unidade USB, gostaria de injetá-la novamente.

Eu poderia fazer isso removendo fisicamente o USB e reconectando-o novamente. Mas eu estava me perguntando, uma vez que o USB já está conectado, não há como fazer isso sem ter que conectar novamente o dispositivo no laptop?

    
por Pacerier 05.10.2011 / 07:03

2 respostas

4

A resposta é que não há uma maneira legal de fazer isso.

É por causa da maneira como o padrão USB foi projetado. Basicamente, quando o dispositivo está conectado, ele é enumerado e, em seguida, pode ser usado pelo sistema. Um dispositivo USB (por USB menor que 3.0) não pode iniciar a comunicação com o sistema por conta própria, portanto, ele confia no sistema para iniciar a comunicação com ele primeiro. Então, quando você remove um dispositivo com segurança, ele perde sua enumeração e, como o dispositivo não pode se comunicar mais com o sistema, o sistema não sabe que está lá. A única maneira de resolver isso é redefinir o hub USB que, por sua vez, redefinirá todos os dispositivos conectados a ele.

Os dispositivos USB 3.0 devem ser capazes de iniciar a comunicação por conta própria, então talvez tenhamos pen drives que podem ser remontados após serem removidos com segurança.

    
por 05.10.2011 / 07:23
3

Você pode usar o utilitário devcon para remover a unidade usb depois de desmontada, mas somente em determinadas circunstâncias:

devcon remove USB\VID_xxxx*PID_yyyy*

Você pode encontrar o vid e o pid no gerenciador de dispositivos do dispositivo

Em seguida, faça uma nova verificação:

devcon rescan

Isso é melhor explicado por Uwe . Uwe sugere colocar um hub entre o dispositivo de armazenamento e o PC. Em seguida, ejete o dispositivo de armazenamento usb e, em seguida, remova o hub e, em seguida, execute o devcon para obter novamente o hub. Isso deve reativar os dispositivos de armazenamento no hub.

    
por 05.10.2011 / 07:42