Re: [NTFS] Kasowanie (nie)zajętych folderów

Autor: Marek Janaszewski /USUN_TO. z adresu!/ <USUN_TO.j_marek_at_gazeta.pl>
Data: Tue 15 Jun 2004 - 15:06:12 MET DST
Message-ID: <camsb7$pcf$1@achot.icm.edu.pl>
Content-Type: text/plain; charset="iso-8859-2"

W wiadomości: camqj4$tm9$1@polsl.gliwice.pl,
Radosław Sokół <Radoslaw.Sokol@polsl.pl> napisał(a):
> Marek Janaszewski /USUN_TO. z adresu!/ wrote:
>> Sprawdziłem, istnieje coś takiego jak uchwyt do katalogu. Opisane
>> przy okazji funkcji CreateFile, powinien być zamykany przez
>> CloseHandle. Moje
>
> Już tak nieco off-topic: CreateFile/CloseHandle zarządzają
> uchwytami na poziomie Win32. W samym jądrze NT każdy naj-
> drobniejszy element może być "zaalokowany" i identyfikowany
> uchwytem -- w tym i katalogi. Tabela uchwytów procesu jest
> trzymana w przestrzeni adresowej procesu i przy kończeniu
> procesu, przy jej zwalnianiu, wszystkie uchwyty są również
> zwalniane. Poza ewentualnością jakiegoś paskudnego błędu
> w systemie (mało możliwe) należy się spodziewać, że zakoń-
> czenie procesu zwolni WSZYSTKIE uchwyty.
[...]

Szkoda, że brak jest informacji jaki to proces zablokował taki katalog czy
plik, ale to inna sprawa. Wyryłem także, że Explorer także sam sobie potrafi
taki katalog zablokować. Pod tym względem Windows 2000/XP w stosunku do 9x
jest bardzo rygorystyczny. W 9x można było skanować dysk z działającym
system. Inna sprawa, że mogło to trać w nieskończoność. XP nie dopuszcza aby
powstało dojście do nieistniejącego katalogu i aby aplikacja musiała
obsłużyć błąd. Ale zabrakło do tego jakieś lepszej informacja i komunikacja
wewnątrz eksploratora by nie dochodziło do dziwnych sytuacji. Być może
jakimś rozwiązaniem było "twardsze" na życzenie użytkownika.

Pewno w przyszłości przekonamy się jak WinFS czy i jak rozwiązuje te
problemy.

>> podkatalogu bin. Jak sprawdzam przez ProcessExlorera proces ASP ma
>> otwarte uchwyty typu plik (jak pozuje ProcessExlorera) do tych
>> katalogów. Skasowanie .dll-ki projektu ASP.NET w katalogu Bin
>> powoduje, że ASP odczepia się od tego katalogu. Być może akurat to
>> zachowanie wynika ze specyfiki ASP.NET.
>
> Może po prostu wystarczy przed zakończeniem pracy tego pro-
> cesu wymusić zmianę bieżącego katalogu w jakiś sposób?
> Nie znam ASP.NET, więc szczegółów nie podam żadnych.
[...]

To nie jest bieżący katalog. Bieżącym katalogiem dla procesu ASP.NET jest
System32. Raczej go nie próbuje usunąć :-) Być może APS.NET jakoś monitoruje
zawartość katalogu strony, którą przed chwilą generowało. W każdym razie
zostawia sobie ten chwyt, czy może zdezorientować. Przy użyciu narzędzia
jakim jest ProcessExplorer można takie problemy rozwiązać bez ponownego
uruchamiania komputera. Ewentualnie zakończenie usługi ale to nie są proste
rozwiązanie dla przeciętnego użytkownika.

-- 
Pozdrawiam,
Marek Janaszewski
[ j_marek@gazeta.pl ]
Received on Tue Jun 15 15:10:18 2004

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 15 Jun 2004 - 15:42:07 MET DST