Método mais simples : o Windows (pelo menos 10, AFAIK) cria uma entrada no log de eventos quando você tenta ejetar uma unidade removível e não pode porque o processo possui um bloqueio. As duas identificações de evento 225 mostrarão a identificação do processo e o nome do processo responsável pelo bloqueio.
Passo a passo:
1) Inicie o visualizador de eventos
2) Abra "Logs do Windows" e depois "Sistema"
3) Clique com o botão direito do mouse em "Sistema" e escolha "Filtrar registro atual"
4) Na caixa de diálogo exibida, digite "225" (sem aspas) onde se lê "Todas as identificações de evento"
5) Você verá todos os eventos relacionados à impossibilidade de ejeção porque um processo bloqueou a unidade.
6) Observe os registros de data e hora em todas essas entradas e descubra quais estão relacionadas à hora real em que você tentou ejetar a unidade.
7) Tome as medidas apropriadas. Terminar uma tarefa normalmente (fechar o programa que tem o bloqueio) é bom na maioria das vezes. Parar o serviço de Pesquisa do Windows também está ok. A interrupção de uma verificação antivírus deve estar ok (se você não suspeitar que tenha algum vírus no momento). Entrar no gerenciador de tarefas e interromper o processo pode não estar bem. Como lidar com isso está além do escopo desta questão.
8) (Salvar a visualização ...) no painel Ações (no quadro direito), você pode "Salvar filtro na visualização personalizada ..." para encontrá-lo em "Visualizações personalizadas" (no quadro esquerdo acima do " Logs do Windows ")
ID do processo:
Nome do processo:
8) Se você não tiver outra entrada com um nome de processo , o processo do sistema (identificação do processo 4) está mantendo sua unidade. Para contornar esse problema, você precisará acessar o gerenciamento de disco e colocar a unidade que deseja ejetar offline . Se o arquivo estiver na sua unidade de inicialização, você não poderá colocá-lo offline. Nesse caso, veja a nota abaixo:
ATUALIZAÇÃO 2018 : vi aplicativos como o WhatsApp Desktop controlando o Chrome Canary por meio do processo do sistema . Como você não pode ejetar o disco de inicialização (porque está em uso), a solução foi usar outro utilitário bacana do Sysinternals , chamado Handle . Depois de fechar o programa que possui o arquivo bloqueado, inicie o identificador e execute (como um exemplo) handle64 "Chrome SxS\Application\chrome.exe"
para verificar se os identificadores ainda estão presentes no arquivo que possui o bloqueio do PID 4. Por tentativa e erro, feche cada programa em execução, até que não haja mais identificadores no arquivo bloqueado.
Melhor método (pago)
Baixe e execute o SafelyRemove . Ele ajuda a ejetar a unidade e, se não for possível, exibe quais processos têm uma trava: