Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby określić, czy system plików obsługuje pliki rozrzedzone, wywołaj funkcję GetVolumeInformation i zbadaj flagę bitową FILE_SUPPORTS_SPARSE_FILES zwróconą za pomocą parametru lpFileSystemFlags.
Większość aplikacji nie zna rozrzednych plików i nie tworzy rozrzedniejszych plików. Fakt, że aplikacja odczytuje plik rozrzedny, jest niewidoczny dla aplikacji. Aplikacja, która ma świadomość rozrzedzona plików, powinna określić, czy jego zestaw danych jest odpowiedni do zachowywania w pliku rozrzedzona. Po wykonaniu tej determinacji aplikacja musi jawnie zadeklarować plik jako rozrzedny przy użyciu kodu sterującego FSCTL_SET_SPARSE.
Po ustawieniu pliku jako rozrzedzona aplikacja może użyć FSCTL_SET_ZERO_DATA kodu sterującego, aby ustawić region pliku na zero. Ponadto aplikacja może użyć FSCTL_QUERY_ALLOCATED_RANGES kodu sterującego, aby przyspieszyć wyszukiwanie danych niezerowych w pliku rozrzedzanym.
Podczas wykonywania operacji zapisu (z funkcją lub operacją inną niż FSCTL_SET_ZERO_DATA), której dane składają się z niczego, ale zera, zera zostaną zapisane na dysku przez całą długość zapisu. Aby zerować zakres pliku i zachować rozrzedwienie, użyj FSCTL_SET_ZERO_DATA.
Aplikacja z rozrzedzona obsługą może również ustawić istniejący plik jako rozrzedzona. Jeśli aplikacja ustawia istniejący plik do rozrzedlenia, powinien następnie przeskanować plik dla regionów zawierających zera i użyć FSCTL_SET_ZERO_DATA do zresetowania tych regionów, co może spowodować cofnięcie przydziału magazynu dysku fizycznego. Aplikacja uaktualniona do rozrzednia rozpoznawania plików powinna wykonać tę konwersję.
Po wykonaniu operacji odczytu z zerowej części pliku rozrzedzonego system operacyjny może nie odczytać z dysku twardego. Zamiast tego system rozpoznaje, że część pliku do odczytu zawiera zera i zwraca bufor pełen zer bez faktycznego odczytu z dysku.
Podobnie jak w przypadku dowolnego innego pliku, system może zapisywać dane do lub odczytywać dane z dowolnej pozycji w pliku rozrzednym. Dane niezerowe zapisywane w wcześniej zerowej części pliku mogą spowodować alokację miejsca na dysku. Zera zapisywane w danych niezerowych (tylko z FSCTL_SET_ZERO_DATA) mogą spowodować cofnięcie przydziału miejsca na dysku.
Nuta
Należy do aplikacji, aby zachować rozrzedwienie, zapisując zera z FSCTL_SET_ZERO_DATA.
Narzędzia do defragmentacji obsługujące skompresowane pliki w systemach plików NTFS będą prawidłowo obsługiwać rozrzedzone pliki na woluminach systemu plików NTFS. Duże i wysoce fragmentowane pliki rozrzedzone mogą przekraczać ograniczenie NTFS w zakresach dysków, zanim zostanie użyte dostępne miejsce.