Aplicativos congelar quando eles simultaneamente tentam acessar um arquivo em uma unidade de rede no Windows

Sintomas

Considere o seguinte cenário:

  • Criar uma pasta compartilhada em um servidor e, em seguida, você adiciona um arquivo à pasta.

  • Em um cliente que esteja executando o Windows 7, Windows 8.1 ou Windows 10, você pode montar a pasta compartilhada como uma unidade de rede.

  • Instalar software de segurança de terceiros que inclui um driver de minifiltro de sistema de arquivos que está associado com um aplicativo.

  • O minifiltro está conectado a uma unidade local que contém o % SystemRoot % caminho (por exemplo, uma unidade C) e a unidade de rede para a pasta compartilhada que você criou.

  • O minifiltro envia uma mensagem (usando a função FltSendMessage ) que inclui o nome do arquivo na unidade de rede para o aplicativo.

  • O aplicativo tenta abrir o arquivo usando o nome do arquivo que ele recebe.

  • Outro aplicativo no mesmo computador que não está associado com o minifiltro tenta abrir o mesmo arquivo na unidade de rede ao mesmo tempo.

Nesse cenário, os dois aplicativos congelar.

Causa

Esse problema ocorre devido a um bloqueio de recurso que é mantido pelo Driver de armazenamento em cache do Windows do cliente (CSC). Quando esse problema ocorre, CSC obtém um bloqueio de recursos em um arquivo e, em seguida, ele solicita um driver acima em uma pilha de driver para abrir o arquivo. Isso faz com que todos os aplicativos que tentam acessar a espera de arquivo. Isso também torna thread do minifiltro Aguarde até que o aplicativo associado a responder.

Solução alternativa

Se o problema já ocorreu, reinicie o cliente.

Para evitar esse problema, desabilite Arquivos off-line , usando o Editor de diretiva de grupo (gpedit. msc) Local. Para fazer isso, use o Permitir ou proibir o uso do recurso arquivos off-line configuração de diretiva de grupo em Computador configuração do computador\Modelos Administrativos\rede\arquivos.

Observação: Se você tiver que usar Arquivos off-line, há uma solução.

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Informações adicionais

Geralmente é uma boa ideia manter bloqueios em chamadas para o sistema de arquivos. O motivo para isso está documentada no seguinte artigo do Blog do desenvolvedor:

Emissão de e/s em minifiltro: parte 1 – FltCreateFile

Para identificar um minifiltro que está conectado a várias unidades como descrito na seção "Sintomas", execute os seguintes comandos em um prompt de comando administrativo:

fltmc instances -v C:

fltmc instances -v \Device\Mup

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×