Udostępnij za pośrednictwem


Aplikacje zawieszają się, gdy jednocześnie próbują uzyskać dostęp do pliku na dysku sieciowym w systemie Windows

Ten artykuł zawiera obejście problemu, w którym aplikacje zawieszają się podczas próby uzyskania dostępu do tego samego pliku na dysku sieciowym w systemie Windows.

Dotyczy systemu: Windows 10 (wszystkie wersje)
Oryginalny numer KB: 4039810

Symptomy

Rozważmy następujący scenariusz:

  • Folder udziału można utworzyć na serwerze, a następnie dodać plik do folderu.
  • Na kliencie z systemem Windows 10, Windows 8.1 lub Windows 7 należy zainstalować folder udostępniony jako dysk sieciowy.
  • Instalujesz oprogramowanie zabezpieczające innej firmy, które zawiera sterownik minifiltru systemu plików skojarzony z aplikacją.
  • Minifiltr jest dołączony zarówno do dysku lokalnego, który przechowuje ścieżkę %SystemRoot% (na przykład dysk C) i dysk sieciowy dla utworzonego folderu udostępnionego.
  • Minifiltr wysyła komunikat (przy użyciu funkcji FltSendMessage ), który zawiera nazwę pliku na dysku sieciowym do aplikacji.
  • Aplikacja próbuje otworzyć plik przy użyciu odbieranych nazw plików.
  • Inna aplikacja na tym samym komputerze, który nie jest skojarzony z minifiltrem, próbuje otworzyć ten sam plik na dysku sieciowym w tym samym czasie.

W tym scenariuszu obie aplikacje zawieszają się.

Przyczyna

Ten problem występuje z powodu blokady zasobów przechowywanej przez sterownik buforowania po stronie klienta systemu Windows (Csc.sys). W przypadku wystąpienia tego problemu Csc.sys pobiera blokadę zasobu w pliku, a następnie żąda sterownika, który znajduje się powyżej w stosie sterowników, aby otworzyć plik. Dzięki temu wszystkie aplikacje, które próbują uzyskać dostęp do pliku oczekiwania. Dzięki temu wątek minifiltru czeka na odpowiedź skojarzonej aplikacji.

Rozwiązanie

Jeśli ten problem już wystąpił, uruchom ponownie klienta.

Aby uniknąć tego problemu, wyłącz pliki trybu offline przy użyciu Edytora lokalnych zasad grupy (gpedit.msc). W tym celu należy użyć ustawienia Zasad grupy Zezwalaj lub nie zezwalaj na korzystanie z funkcji Pliki trybu offline w obszarze Konfiguracja komputera\Szablony administracyjne\Sieć\Pliki offline.

Uwaga 16.

Jeśli musisz używać plików trybu offline, nie ma obejścia problemu.

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych na początku artykułu.

Więcej informacji

Zazwyczaj jest to zły pomysł, aby przechowywać blokady między wywołaniami systemu plików. Przyczyna tego rozwiązania jest udokumentowana w następującym artykule na blogu dla deweloperów:
Wystawianie operacji we/wy w minifiltrach: część 1 — FltCreateFile

Aby zidentyfikować minifiltr dołączony do wielu dysków zgodnie z opisem w sekcji "Objawy", uruchom następujące polecenia w wierszu polecenia administracyjnego:

fltmc instances -v C:

fltmc instances -v \Device\Mup