Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
1 Giriş
exFAT dosya sistemi, FAT dosya sistemleri ailesinde FAT32'nin ardılıdır. Bu belirtim exFAT dosya sistemini açıklar ve exFAT dosya sistemini uygulamak için gereken tüm bilgileri sağlar.
1.1 Tasarım Hedefleri
exFAT dosya sisteminin üç merkezi tasarım hedefi vardır (aşağıdaki listeye bakın).
FAT tabanlı dosya sistemlerinin basitliğini koruyun.
FAT tabanlı dosya sistemlerinin güçlü yönlerinden ikisi, göreli basitliği ve uygulama kolaylığıdır. Öncüllerinin ruhuna göre, uygulayıcılar exFAT'ı nispeten basit ve uygulanması kolay bulmalıdır.
Çok büyük dosyaları ve depolama cihazlarını etkinleştirin.
ExFAT dosya sistemi, dosya boyutunu açıklamak için 64 bit kullanır ve böylece çok büyük dosyalara bağımlı olan uygulamaları etkinleştirir. ExFAT dosya sistemi ayrıca 32 MB kadar büyük kümelere izin verir ve çok büyük depolama cihazlarını etkili bir şekilde etkinleştirir.
Gelecekteki yenilikler için genişletilebilirliği teşvik edin.
ExFAT dosya sistemi, tasarımına genişletilebilirlik katarak dosya sisteminin depolama alanındaki yeniliklere ve kullanımdaki değişikliklere ayak uydurmasını sağlar.
1.2 Özel Terminoloji
Bu belirtim bağlamında, exFAT dosya sisteminin tasarımı ve uygulanması için belirli terimler (bkz . Tablo 1) belirli bir anlam taşır.
Tablo 1 Çok Özel Anlam Taşıyan Terimlerin Tanımı
Terim | Tanım |
---|---|
Olmalıdır | Bu belirtim, zorunlu olan bir davranışı tanımlamak için "shall" terimini kullanır. |
Olmalı | Bu belirtim, kesinlikle önerdiği ancak zorunlu hale getirmediği bir davranışı tanımlamak için "should" terimini kullanır. |
Mayıs | Bu belirtim, isteğe bağlı bir davranışı tanımlamak için "may" terimini kullanır. |
Zorunlu | Bu terim, bir uygulamanın değiştirip bu belirtimde açıklandığı gibi yorumladığı bir alanı veya yapıyı açıklar. |
Opsiyonel | Bu terim, bir uygulamanın destekleyebilecek veya desteklemeyebileceği bir alanı veya yapıyı açıklar. Bir uygulama belirli bir isteğe bağlı alan veya yapıyı destekliyorsa, bu belirtimin açıklandığı gibi alanı veya yapıyı değiştirip yorumlayacaktır. |
Tanımsız | Bu terim, bir uygulamanın gerektiği gibi değiştirebileceği (çevresindeki alanları veya yapıları ayarlarken sıfıra kadar açık) alan veya yapı içeriğini açıklar ve belirli bir anlamı barındıracak şekilde yorumlanmayacaktır. |
Rezerve edildi | Bu terim, hangi uygulamaların uygulandığı alan veya yapı içeriğini açıklar:
|
1.3 Ortak Kısaltmaların Tam Metni
Bu belirtim, kişisel bilgisayar sektöründe ortak kullanımda kısaltmaları kullanır (bkz . Tablo 2).
Tablo 2 Ortak Kısaltmaların Tam Metni
Kısaltma | Tam Metin |
---|---|
ASCII | Bilgi Değişimi için Amerikan Standart Kodu |
BIOS | Temel Giriş Çıkış Sistemi |
İşlemci (CPU) | Merkezi İşlem Birimi |
exFAT | Genişletilebilir Dosya Ayırma Tablosu |
YAĞ | Dosya Ayırma Tablosu |
FAT12 dosya sistemi | Dosya Ayırma Tablosu, 12 bit küme dizinleri |
FAT16 | Dosya Ayırma Tablosu, 16 bit küme dizinleri |
FAT32 | Dosya Ayırma Tablosu, 32 bit küme dizinleri |
GPT | GUID BölümLeme Tablosu |
GUID | Genel Benzersiz Tanımlayıcı (bkz . Bölüm 10.1) |
INT | Sözünü kesmek / Durdurmak |
MBR | Ana Önyükleme Kaydı |
texFAT | İşlemler için güvenli exFAT |
UTC | Eşgüdümlü Evrensel Saat |
1.4 Varsayılan Alan ve Yapı Niteleyicileri
Belirtim aksini belirtmediği sürece, bu belirtimdeki alanlar ve yapılar aşağıdaki niteleyicilere sahiptir (aşağıdaki listeye bakın).
İmzasız
Sayısal değerleri tanımlamak için, aksi belirtilmediği durumlarda, ondalık gösterimi kullanın; bu belirtim, onaltılık sayıları belirtmek için son eki olarak "h" harfini kullanır ve GUID'leri küme ayracı içine alır.
Küçük endian biçimindedir.
Dizeler için null sonlandırıcı karakter gerektirmeyin
1.5 Windows CE ve TexFAT
TexFAT, temel dosya sisteminin üstüne işlem açısından güvenli işlem semantiği ekleyen bir exFAT uzantısıdır. TexFAT, Windows CE tarafından kullanılır. TexFAT, işlemlerde kullanılmak üzere iki FAT'nin ve ayırma bit eşlemlerinin kullanılmasını gerektirir. Ayrıca doldurma tanımlayıcıları ve güvenlik tanımlayıcıları da dahil olmak üzere çeşitli ek yapıları tanımlar.
2 Birim Yapısı
Birim, kullanıcı verilerini depolamak ve almak için gereken tüm dosya sistemi yapılarının ve veri alanının kümesidir. Tüm exFAT birimleri dört bölge içerir (bkz . Tablo 3).
Tablo 3 Birim Yapısı
Alt Bölge Adı | Uzaklık (sektör) |
Boyut (sektörler) |
Açıklamalar |
---|---|---|---|
Ana Önyükleme Bölgesi | |||
Ana Önyükleme Sektörü | 0 | 1 | Bu alt bölge zorunludur ve Bölüm 3.1 içeriğini tanımlar. |
Ana Genişletilmiş Önyükleme Kesimleri | 1 | 8 | Bu alt bölge zorunludur ve Bölüm 3.2) içeriğini tanımlar. |
Ana OEM Parametreleri | 9 | 1 | Bu alt bölge zorunludur ve Bölüm 3.3 içeriğini tanımlar. |
Ana Rezervasyon | 10 | 1 | Bu alt bölge zorunludur ve içeriği korunmuştur. |
Ana Başlangıç Sağlama Toplamı | 11 | 1 | Bu alt bölge zorunludur ve Bölüm 3.4 içeriğini tanımlar. |
Yedekleme Önyükleme Bölgesi | |||
Yedek Önyükleme Sektörü | 12 | 1 | Bu alt bölge zorunludur ve Bölüm 3.1 içeriğini tanımlar. |
Genişletilmiş Önyükleme Sektörlerini Yedekleme | 13 (on üç) | 8 | Bu alt bölge zorunludur ve Bölüm 3.2 içeriğini tanımlar. |
OEM Parametrelerini Yedekleme | 21 | 1 | Bu alt bölge zorunludur ve Bölüm 3.3 içeriğini tanımlar. |
Yedekleme Ayrılmış | 22 | 1 | Bu alt bölge zorunludur ve içeriği korunmuştur. |
Yedekleme Önyükleme Sağlama Toplamı | 23 | 1 | Bu alt bölge zorunludur ve Bölüm 3.4 içeriğini tanımlar. |
FAT Bölgesi | |||
FAT Hizalama | yirmi dört | FatOffset – 24 | Bu alt bölge zorunludur ve varsa içeriği tanımlanmamıştır. Not: Ana ve Yedek Önyükleme Sektörlerinin her ikisi de FatOffset alanını içerir. |
İlk FAT | FatOffset | Yağ Uzunluğu | Bu alt bölge zorunludur ve Bölüm 4.1 içeriğini tanımlar. Not: Ana ve Yedek Önyükleme Sektörleri hem FatOffset hem de FatLength alanlarını içerir. |
İkinci FAT | FatOffset + FatLength | YağUzunluğu * (YağSayısı – 1) | Bu alt bölge zorunludur ve bölüm 4.1 varsa içeriğini tanımlar. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de FatOffset, FatLength ve NumberOfFats alanlarını içerir. NumberOfFats alanı yalnızca 1 ve 2 değerlerini barındırabilir. |
Veri Bölgesi | |||
Küme Yığın Hizalaması | YağOfseti + YağUzunluğu * YağSayıları | ClusterHeapOffset – (FatOffset + FatLength * NumberOfFats) | Bu alt bölge zorunludur ve varsa içeriği tanımlanmamıştır. Not: Hem Ana hem de Yedekleme Önyükleme Kesimleri FatOffset, FatLength, NumberOfFats ve ClusterHeapOffset alanlarını içerir. NumberOfFats alanının geçerli değerleri 1 ve 2'dir. |
Küme Yığını | ClusterHeapOffset | KümeSayısı * 2KümedeSektörKaydırma | Bu alt bölge zorunludur ve Bölüm 5.1 içeriğini tanımlar. Not: Hem Ana hem de Yedekleme Önyükleme Kesimleri ClusterHeapOffset, ClusterCount ve SectorsPerClusterShift alanlarını içerir. |
Fazla Alan | ClusterHeapOffset + ClusterCount * 2SectorsPerClusterShift | HacimUzunluğu – (KümeYığınÖteleme + KümeSayısı * 2KümelerBaşınaSektörKaydırması) | Bu alt bölge zorunludur ve varsa içeriği tanımlanmamıştır. Not: Hem Ana hem de Yedekleme Önyükleme Kesimleri ClusterHeapOffset, ClusterCount, SectorsPerClusterShift ve VolumeLength alanlarını içerir. |
3 Ana ve Yedek Önyükleme Bölgeleri
Ana Önyükleme bölgesi, bir uygulamanın aşağıdakileri gerçekleştirmesini sağlamak için gerekli tüm önyükleme bağlama yönergelerini, tanımlama bilgilerini ve dosya sistemi parametrelerini sağlar:
- Bir exFAT biriminden bilgisayar sistemini başlat.
- Birimdeki dosya sistemini exFAT olarak belirleyin.
- exFAT dosya sistemi yapılarının konumunu keşfedin.
Önyükleme Yedekleme Bölgesi, Ana Önyükleme Bölgesi'nin bir yedeğidir. Ana Önyükleme bölgesinin tutarsız bir durumda olması durumunda exFAT biriminin kurtarılmasını sağlar. Önyükleme bağlama yönergelerini güncelleştirme gibi seyrek koşullar dışında, uygulamalar Yedekleme Önyükleme bölgesinin içeriğini değiştirmemelidir.
3.1 Ana ve Yedek Önyükleme Sektörü Alt Bölgeler
Ana Önyükleme Kesimi, bir exFAT biriminden önyükleme kayışı oluşturma kodunu ve birim yapısını açıklayan temel exFAT parametrelerini içerir (bkz . Tablo 4). BIOS, MBR veya diğer önyükleme kayışı aracıları bu kesimi inceler ve burada yer alan önyükleme kayışı yönergelerini yükleyip yürütebilir.
Yedekleme Önyükleme Kesimi, Ana Önyükleme Kesiminin bir yedeğidir ve aynı yapıya sahiptir (bkz . Tablo 4). Yedekleme Önyükleme Kesimi kurtarma işlemlerine yardımcı olabilir; ancak, uygulamalar VolumeFlags ve PercentInUse alanlarının içeriğini eski olarak kabul eder.
Ana veya Yedekleme Önyükleme Kesiminin içeriğini kullanmadan önce, uygulamalar ilgili Önyükleme Sağlama Toplamını doğrulayarak ve tüm alanlarının geçerli değer aralığında olduğundan emin olarak içeriklerini doğrular.
İlk biçim işlemi hem Ana hem de Yedekleme Önyükleme Sektörlerinin içeriğini başlatacak olsa da, uygulamalar gerektiğinde bu sektörleri güncelleyebilir (ve ilgili Önyükleme Kontrol Toplamını da güncelleyebilir). Ancak, uygulamalar ilgili Önyükleme Sağlama Toplamını güncelleştirmeden VolumeFlags veya PercentInUse alanlarını güncelleştirebilir (sağlama toplamı özellikle bu iki alanı dışlar).
Tablo 4 Ana ve Yedek Önyükleme Sektörü Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
JumpBoot | 0 | 3 | Bu alan zorunludur ve Bölüm 3.1.1 içeriğini tanımlar. |
Dosya Sistemi Adı | 3 | 8 | Bu alan zorunludur ve Bölüm 3.1.2 içeriğini tanımlar. |
MustBeZero | 11 | 53 | Bu alan zorunludur ve Bölüm 3.1.3 içeriğini tanımlar. |
BölümOfseti | 64 | 8 | Bu alan zorunludur ve Bölüm 3.1.4 içeriğini tanımlar. |
HacimUzunluğu | 72 | 8 | Bu alan zorunludur ve Bölüm 3.1.5 içeriğini tanımlar. |
FatOffset | 80 | 4 | Bu alan zorunludur ve Bölüm 3.1.6 içeriğini tanımlar. |
Yağ Uzunluğu | 84 | 4 | Bu alan zorunludur ve Bölüm 3.1.7 içeriğini tanımlar. |
ClusterHeapOffset | 88 | 4 | Bu alan zorunludur ve Bölüm 3.1.8 içeriğini tanımlar. |
Küme Sayısı | 92 | 4 | Bu alan zorunludur ve Bölüm 3.1.9 içeriğini tanımlar. |
FirstClusterOfRootDirectory | 96 | 4 | Bu alan zorunludur ve Bölüm 3.1.10 içeriğini tanımlar. |
HacimSeriNumarası | 100 | 4 | Bu alan zorunludur ve Bölüm 3.1.11 içeriğini tanımlar. |
Dosya Sistemi Revizyonu | 104 | 2 | Bu alan zorunludur ve Bölüm 3.1.12 içeriğini tanımlar. |
Ses Bayrakları | 106 | 2 | Bu alan zorunludur ve Bölüm 3.1.13 içeriğini tanımlar. |
Bölüm Başına Bayt Kaydırma | 108 | 1 | Bu alan zorunludur ve Bölüm 3.1.14 içeriğini tanımlar. |
SektörlerPerClusterShift | 109 | 1 | Bu alan zorunludur ve Bölüm 3.1.15 içeriğini tanımlar. |
NumberOfFats | 110 | 1 | Bu alan zorunludur ve Bölüm 3.1.16 içeriğini tanımlar. |
Sürüş Modu Seçici | 111 | 1 | Bu alan zorunludur ve Bölüm 3.1.17 içeriğini tanımlar. |
KullanımYüzdesi | 112 | 1 | Bu alan zorunludur ve Bölüm 3.1.18 içeriğini tanımlar. |
Rezerve edildi | 113 | 7 | Bu alan zorunludur ve içeriği saklıdır. |
BootCode (Başlatma Kodu) | 120 | 390 | Bu alan zorunludur ve Bölüm 3.1.19 içeriğini tanımlar. |
BootSignature | 510 | 2 | Bu alan zorunludur ve Bölüm 3.1.20 içeriğini tanımlar. |
ExcessSpace | 512 | 2BytesPerSectorShift – 512 | Bu alan zorunludur ve varsa içeriği tanımlanmamıştır. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de BytesPerSectorShift alanını içerir. |
3.1.1 JumpBoot Alanı
JumpBoot alanı, kişisel bilgisayarlarda yaygın olarak kullanılan CPU'lar için atlama komutunu içermelidir. Bu komut yürütüldüğünde, CPU, BootCode alanındaki önyükleme talimatlarını yürütmek üzere "atlar".
Bu alan için geçerli değer (düşük sıralı bayt ile yüksek sıralı bayt sırasına göre) EBh 76h 90h'dir.
3.1.2 FileSystemName Alanı
FileSystemName alanı birimdeki dosya sisteminin adını içermelidir.
Bu alan için geçerli değer, sondaki üç beyaz boşluğu içeren "EXFAT" ASCII karakterlerindedir.
3.1.3 MustBeZero Alanı
MustBeZero alanı, paketlenmiş BIOS parametre bloğunun FAT12/16/32 birimlerinde tükettiği bayt aralığına doğrudan karşılık gelir.
Bu alan için geçerli değer 0'dır ve bu da FAT12/16/32 uygulamalarının yanlışlıkla bir exFAT birimi bağlamasını önlemeye yardımcı olur.
3.1.4 PartitionOffset Alanı
PartitionOffset alanı, verilen exFAT birimini barındıran bölümün medya göreli kesim uzaklığını açıklar. Bu alan, kişisel bilgisayarlarda 'genişletilmiş INT 13h' kullanarak birimden önyükleme sürecine yardımcı olur.
Bu alan için tüm olası değerler geçerlidir; ancak 0 değeri, uygulamaların bu alanı yoksayması gerektiğini belirtir.
3.1.5 VolumeLength Alanı
VolumeLength alanı, sektörlerde verilen exFAT hacminin boyutunu açıklamalı.
Bu alan için geçerli değer aralığı:
En az 220/ 2BytesPerSectorShift, bu da en küçük hacmin 1 MB'tan az olmamasını sağlar.
En fazla 264- 1, bu alanın açıklayabileceğiniz en büyük değerdir.
Ancak, Fazla Alan alt bölgesinin boyutu 0 ise, bu alanın en büyük değeri ClusterHeapOffset + (232- 11) *2SectorsPerClusterShift olur.
3.1.6 FatOffset Alanı
FatOffset alanı, İlk FAT'nin hacim göreli kesim uzaklığını açıklamalı. Bu alan, uygulamaların İlk FAT'yi temel alınan depolama medyasının özellikleriyle uyumlu hale getirmesini sağlar.
Bu alan için geçerli değer aralığı:
- Ana Önyükleme ve Yedek Önyükleme bölgelerinin tükettiği sektörlerin toplamı en az 24'tür.
- Küme Yığınının tükettiği kesimleri hesaplayan ClusterHeapOffset - (FatLength * NumberOfFats)
3.1.7 FatLength Alanı
FatLength alanı, hacim en fazla iki FAT içerebileceğinden, her FAT tablosunun sektörlerdeki uzunluğunu açıklar.
Bu alan için geçerli değer aralığı:
- En az (ClusterCount + 2) * 22/ 2BytesPerSectorShiften yakın tamsayıya yuvarlanarak her FAT'nin Küme Yığınındaki tüm kümeleri tanımlamak için yeterli alana sahip olmasını sağlar
- En fazla (ClusterHeapOffset - FatOffset) / NumberOfFats ifadesi en yakın tamsayıya yuvarlanır ve bu, FAT'lardanın Küme Yığınından önce var olmasını sağlar.
Bu alan, ikinci FAT değerinin varsa, temel depolama medyasının özelliklerine de hizalanması için alt sınırın (yukarıda açıklandığı gibi) üzerinde bir değer içerebilir. FAT'nin gerektirdiğini (varsa) aşan alanın içeriği tanımlanmamıştır.
3.1.8 ClusterHeapOffset Alanı
ClusterHeapOffset alanı, Küme Yığınının birim göreli kesim uzaklığını açıklamalı. Bu alan, uygulamaların Küme Yığınını temel alınan depolama medyasının özelliklerine hizalamasını sağlar.
Bu alan için geçerli değer aralığı:
- Önceki tüm bölgelerin tükettiği kesimleri hesaba eklemek için en az FatOffset + FatLength * NumberOfFats
- En fazla 232-1 veya VolumeLength - (ClusterCount * 2SectorsPerClusterShift), hangi hesaplama daha küçükse
3.1.9 ClusterCount Alanı
ClusterCount alanı, küme yığınının içerdiği küme sayısını tanımlar.
Bu alanın geçerli değeri aşağıdakilerden küçük olmalıdır:
- (VolumeLength - ClusterHeapOffset) / 2SectorsPerClusterShift, küme yığınının başlangıcı ile birimin sonu arasında tam olarak sığabilecek küme sayısı olan en yakın tamsayıya yuvarlanır
- 232- 11, bir FAT'nin açıklayabileceğiniz en fazla küme sayısıdır
ClusterCount alanının değeri, FAT'nin en düşük boyutunu belirler. Son derece büyük FAT'ler oluşmasını önlemek için, uygulamalar Küme Yığınındaki küme sayısını, küme boyutu artırılarak (SectorsPerClusterShift alanı aracılığıyla) denetleyebilir. Bu belirtim, Küme Yığını'nda en fazla2 24- 2 küme önerir. Ancak, uygulamalar Küme Yığınında 232- 11 kümeye kadar olan birimleri işleyebilecektir.
3.1.10 RootDirectory'nin İlk Kümesi Alanı
FirstClusterOfRootDirectory alanı, kök dizinin ilk kümesinin küme dizinini içermelidir. Uygulamalar, Ayırma Bit Eşlemi ve Büyük/Küçük Harf Tablosunun tükettiği kümelerden sonra kök dizinin ilk kümesini hatalı olmayan ilk kümeye yerleştirmek için her çabayı göstermelidir.
Bu alan için geçerli değer aralığı:
- Küme Yığınındaki ilk kümenin dizini olan en az 2
- En çok ClusterCount + 1, Küme Yığınındaki son kümenin dizini
3.1.11 VolumeSerialNumber Alanı
VolumeSerialNumber alanı benzersiz bir seri numarası içermelidir. Bu, farklı exFAT birimleri arasında ayrım yapmak için uygulamalara yardımcı olur. Uygulamalar, exFAT birimini biçimlendirme tarihi ve saatini birleştirerek seri numarasını oluşturmalıdır. Seri numarası oluşturmak için tarih ve saati birleştirme mekanizması uygulamaya özgüdür.
Bu alan için tüm olası değerler geçerlidir.
3.1.12 FileSystemRevision Alanı
FileSystemRevision alanı, verilen birimdeki exFAT yapılarının ana ve ikincil düzeltme numaralarını açıklar.
Yüksek sıralı bayt ana düzeltme numarası, düşük sıralı bayt ise küçük düzeltme numarasıdır. Örneğin, yüksek sıralı bayt 01h değerini içeriyorsa ve düşük sıralı bayt 05h değerini içeriyorsa, FileSystemRevision alanı 1,05 düzeltme numarasını açıklar. Benzer şekilde, yüksek sıralı bayt 0Ah değerini içeriyorsa ve düşük sıralı bayt 0Fh değerini içeriyorsa, FileSystemRevision alanı 10,15 düzeltme numarasını açıklar.
Bu alan için geçerli değer aralığı:
- Düşük sipariş bayt için en az 0 ve yüksek sipariş bayt için 1
- Düşük düzen baytı için en fazla 99 ve yüksek düzen baytı için en fazla 99
Bu belirtimi açıklayan exFAT düzeltme sayısı 1,00'dır. Bu belirtim uygulamaları, ana düzeltme numarası 1 olan herhangi bir exFAT birimini bağlamalı ve herhangi bir exFAT birimini başka bir ana düzeltme numarasına bağlamamalıdır. Uygulamalar küçük düzeltme numarasına uygun olacaktır ve işlem gerçekleştirmez veya verilen küçük düzeltme numarasının ilgili belirtiminde açıklanmayan herhangi bir dosya sistemi yapısı oluşturmaz.
3.1.13 VolumeFlags Alanı
VolumeFlags alanı, exFAT birimindeki çeşitli dosya sistemi yapılarının durumunu gösteren bayraklar içermelidir (bkz . Tablo 5).
Uygulamalar, ilgili Ana Önyükleme veya Yedekleme Önyükleme bölgesi sağlama toplamı hesaplanırken bu alanı içermeyecektir. Yedek Önyükleme Kesimi'ne başvururken, uygulamalar bu alanı güncelliğini yitirmiş olarak kabul edecektir.
Tablo 5 VolumeFlags Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
ActiveFat | 0 | 1 | Bu alan zorunludur ve Bölüm 3.1.13.1 içeriğini tanımlar. |
DiskDurumu: Kirli | 1 | 1 | Bu alan zorunludur ve Bölüm 3.1.13.2 içeriğini tanımlar. |
MediaFailure | 2 | 1 | Bu alan zorunludur ve Bölüm 3.1.13.3 içeriğini tanımlar. |
ClearToZero | 3 | 1 | Bu alan zorunludur ve Bölüm 3.1.13.4 içeriğini tanımlar. |
Rezerve edildi | 4 | 12 | Bu alan zorunludur ve içeriği saklıdır. |
3.1.13.1 ActiveFat Alanı
ActiveFat alanı, hangi FAT ve Ayırma Bit Eşleminin etkin olduğunu (ve uygulamaların kullanacağı) aşağıdaki gibi açıklayacaktır:
- 0, yani İlk FAT ve İlk Tahsis Bit Haritası etkindir.
- 1, yani İkinci FAT ve İkinci Ayırma Bit Eşlemi etkindir ve yalnızca NumberOfFats alanı 2 değerini içerdiğinde mümkündür
Uygulamalar, etkin olmayan FAT ve Ayırma Bit Eşlemi'ni eski olarak değerlendirecektir. Yalnızca TexFAT kullanan uygulamalar etkin FAT ve Ayırma Bit Eşlemlerini değiştirecektir (bkz . Bölüm 7.1).
3.1.13.2 VolumeDirty Alanı
VolumeDirty alanı, birimin kirli olup olmadığını aşağıdaki gibi açıklayacaktır:
- 0, bu da hacmin büyük olasılıkla tutarlı bir durumda olduğu anlamına gelir
- 1, bu da hacmin büyük olasılıkla tutarsız bir durumda olduğu anlamına gelir
Uygulamalar, çözümlemedikleri dosya sistemi meta veri tutarsızlıklarıyla karşılaştıklarında bu alanın değerini 1 olarak ayarlamalıdır. Birim bağlandığı zaman, bu alanın değeri 1 ise, yalnızca dosya sistemi meta veri tutarsızlıklarını çözen uygulamalar bu alanın değerini 0 olarak temizleyebilecektir. Bu tür uygulamalar, dosya sisteminin tutarlı bir durumda olduğundan emin olduktan sonra bu alanın değerini yalnızca 0 olarak temizleyecektir.
Birim bağlanıldığında bu alanın değeri 0 ise, uygulamalar dosya sistemi meta verilerini güncelleştirmeden önce bu alanı 1 olarak ayarlamalı ve daha sonra Bölüm 8.1'de açıklanan önerilen yazma sırasına benzer şekilde bu alanı 0 olarak temizlemelidir.
3.1.13.3 MediaFailure Alanı
MediaFailure alanı, bir uygulamanın medya hatalarını keşfedip keşfetmediğini aşağıdaki gibi açıklamaktadır:
- 0, barındırma medyasının hata bildirmediği veya bilinen hataların ZATEN FAT'de "hatalı" kümeler olarak kaydedildiği anlamına gelir
- 1, barındırma medyasının hata bildirdiği anlamına gelir (yani okuma veya yazma işlemleri başarısız oldu)
Aşağıdaki durumlarda bir uygulama bu alanı 1 olarak ayarlamalıdır:
- Barındırma medyası birimdeki herhangi bir bölgeye erişim girişiminde başarısız oluyor
- Uygulama, varsa erişim yeniden deneme algoritmalarının limitine ulaştı
Birim bağlandığı zaman bu alanın değeri 1 ise, medya hataları için birimin tamamını tarayan ve tüm hataları FAT'de "hatalı" kümeler olarak kaydeden (veya medya hatalarını başka bir şekilde çözen) uygulamalar bu alanın değerini 0 olarak temizleyebilecektir.
3.1.13.4 ClearToZero Alanı
ClearToZero alanının bu belirtimde önemli bir anlamı yoktur.
Bu alan için geçerli değerler şunlardır:
- Belirli bir anlamı olmayan 0
- 1, yani uygulamalar herhangi bir dosya sistemi yapılarını, dizinlerini veya dosyalarını değiştirmeden önce bu alanı 0 olarak temizler
3.1.14 BytesPerSectorShift Alanı
BytesPerSectorShift alanı, sektör başına bayt sayısını logaritma2(N) biçiminde tanımlar; burada N, sektör başına bayt sayısını belirtir. Örneğin, kesim başına 512 bayt için bu alanın değeri 9'dur.
Bu alan için geçerli değer aralığı:
- ExFAT hacmi için mümkün olan en küçük kesim olan en az 9 (512 bayt kesim boyutu)
- En fazla 12 (sektör boyutu 4096 bayt), kişisel bilgisayarlarda yaygın olan CPU'ların bellek sayfası boyutudur.
3.1.15 SektörlerPerClusterShift Alanı
SectorsPerClusterShift alanı, küme başına sektörleri, küme başına sektör sayısı olan N için logaritma2(N) olarak ifade edilen şekilde tanımlar. Örneğin, küme başına 8 kesim için bu alanın değeri 3'tür.
Bu alan için geçerli değer aralığı:
- Mümkün olan en küçük küme, küme başına en az 0 (1 sektör)dır.
- En fazla 25 - BytesPerSectorShift, bu, 32 MB'lık bir küme boyutuna eşittir.
3.1.16 SayıFats Alanı
NumberOfFats alanı, birimin içerdiği FAT ve Ayırma Bit Eşlemi sayısını belirtmelidir.
Bu alan için geçerli değer aralığı:
- Birimin yalnızca İlk FAT ve İlk Ayırma Bit Eşlemini içerdiğini gösteren 1
- Birimin İlk FAT, İkinci FAT, İlk Ayırma Bit Eşlemi ve İkinci Ayırma Bit Eşlemi içerdiğini gösteren 2; Bu değer yalnızca TexFAT birimleri için geçerlidir
3.1.17 DriveSelect Field
DriveSelect alanı, kişisel bilgisayarlarda genişletilmiş INT 13h kullanarak bu birimden başlangıç sürecine yardımcı olan genişletilmiş INT 13h sürücü numarasını içermelidir.
Bu alan için tüm olası değerler geçerlidir. Önceki FAT tabanlı dosya sistemlerindeki benzer alanlar genellikle 80h değerini içeriyordu.
3.1.18 PercentInUse Alanı
PercentInUse alanı, Küme Yığınında ayrılan kümelerin yüzdesini açıklamalı.
Bu alan için geçerli değer aralığı:
- 0 ile 100 arasında (küme yığınındaki ayrılmış kümelerin yüzdesidir) en yakın tamsayıya yuvarlanır
- Tam olarak FFh, Küme Yığını'ndaki ayrılmış kümelerin yüzdesinin mevcut olmadığını gösterir.
Uygulamalar bu alanın değerini Küme Yığınındaki küme ayırma değişikliklerini yansıtacak şekilde değiştirecek veya FFh olarak değiştirecektir.
Uygulamalar, ilgili Ana Önyükleme veya Yedekleme Önyükleme bölgesi sağlama toplamı hesaplanırken bu alanı içermeyecektir. Yedek Önyükleme Kesimi'ne başvururken, uygulamalar bu alanı güncelliğini yitirmiş olarak kabul edecektir.
3.1.19 BootCode Alanı
BootCode alanı önyükleme talimatlarını içermelidir. Uygulamalar bu alanı bir bilgisayar sistemini önyüklemek için gereken CPU yönergeleriyle doldurabilir. Önyükleme talimatları sağlamayan uygulamalar, biçimlendirme işleminin bir parçası olarak bu alandaki her baytı F4h'ye (kişisel bilgisayarlarda yaygın CPU'lar için durdurma talimatı) olacak şekilde başlatmalıdır.
3.1.20 BootSignature Alanı
BootSignature alanı, belirli bir kesimin amacının Önyükleme Kesimi olarak belirlenip belirlenmediğini belirtmektedir.
Bu alan için geçerli değer AA55h'dir. Bu alandaki diğer tüm değerler, ilgili Önyükleme Sektörünü geçersiz kılar. Uygulamalar, ilgili Önyükleme Kesimindeki diğer alanlara bağlı olarak bu alanın içeriğini doğrulamalıdır.
3.2 Ana ve Yedek Genişletilmiş Önyükleme Kesimleri Alt Bölgeleri
Ana Genişletilmiş Önyükleme Kesimlerinin her kesimi aynı yapıya sahiptir; ancak, her kesim ayrı önyükleme kayışı oluşturma yönergeleri içerebilir (bkz. Tablo 6). Ana Önyükleme Sektöründeki önyükleme yönergeleri, alternatif BIOS uygulamaları veya gömülü bir sistemin üretici yazılımı gibi önyükleme ajanları bu sektörleri yükleyebilir ve içerdikleri yönergeleri yürütebilir.
Yedekleme Genişletilmiş Önyükleme Kesimleri, Ana Genişletilmiş Önyükleme Kesimlerinin bir yedeğidir ve aynı yapıya sahiptir (bkz . Tablo 6).
Main veya Backup Genişletilmiş Önyükleme Kesimlerinin yönergelerini yürütmeden önce, uygulamalar her kesimin ExtendedBootSignature alanında belirtilen değerin bulunduğundan emin olarak içeriklerini doğrulamalıdır.
İlk biçim işlemi, hem Ana hem de Yedek Genişletilmiş Önyükleme Bölümlerinin içeriğini başlatmasına rağmen, uygulamalar gerektiğinde bu bölümleri güncelleyebilir (ve ilgili Önyükleme Sağlama Toplamını da güncelleyebilir).
Tablo 6 Genişletilmiş Önyükleme Sektörü Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
Genişletilmiş Önyükleme Kodu | 0 | 2BytesPerSectorShift – 4 | Bu alan zorunludur ve Bölüm 3.2.1 içeriğini tanımlar. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de BytesPerSectorShift alanını içerir. |
GenişletilmişBootİmzası | 2BytesPerSectorShift – 4 | 4 | Bu alan zorunludur ve Bölüm 3.2.2 içeriğini tanımlar. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de BytesPerSectorShift alanını içerir. |
3.2.1 ExtendedBootCode Alanı
ExtendedBootCode alanı önyükleme talimatlarını içermelidir. Uygulamalar bu alanı bir bilgisayar sistemini önyüklemek için gereken CPU yönergeleriyle doldurabilir. Önyükleme yönergeleri sağlamayan uygulamalar, biçim işlemlerinin bir parçası olarak bu alandaki her baytı 00h olarak başlatacaktır.
3.2.2 ExtendedBootSignature Alanı
ExtendedBootSignature alanı, belirli bir kesimin amacının Genişletilmiş Önyükleme Kesimi olup olmadığını belirtir.
Bu alan için geçerli değer AA550000h'dir. Bu alandaki diğer tüm değerler ilgili Ana veya Yedek Genişletilmiş Önyükleme Sektörünü geçersiz kılar. Uygulamalar, ilgili Genişletilmiş Önyükleme Sektöründeki diğer alanlara bağlı olmadan önce bu alanın içeriğini doğrulamalıdır.
3.3 Ana ve Yedekleme OEM Parametreleri Alt Bölgeleri
Ana OEM Parametreleri alt bölgesi, üreticiye özgü bilgiler içerebilen on parametre yapısı içerir (bkz . Tablo 7). On parametre yapısının her biri Genel Parametreler şablonundan türetilir (bkz . Bölüm 3.3.2). Üreticiler, Genel Parametreler şablonundan kendi özel parametre yapılarını türetebilir. Bu belirtim iki parametre yapısını tanımlar: Null Parametreler (bkz . Bölüm 3.3.3) ve Flash Parametreleri (bkz . Bölüm 3.3.4).
Yedekleme OEM Parametreleri, Ana OEM Parametrelerinin bir yedeğidir ve aynı yapıya sahiptir (bkz . Tablo 7).
Ana veya Yedek OEM Parametrelerinin içeriğini kullanmadan önce, uygulamalar ilgili Önyükleme Sağlama Toplamı'nı doğrulayarak içeriklerinin doğruluğunu teyit etmelidir.
Üreticiler, Main ve Backup OEM Parametrelerini varsa kendi özel parametre yapılarıyla ve diğer parametre yapılarıyla doldurmalıdır. Sonraki biçim işlemleri Ana ve Yedekleme OEM Parametrelerinin içeriğini koruyacaktır.
Uygulamalar, Main ve Backup OEM Parametrelerini gerektiği şekilde güncelleştirebilir (ve ilgili Başlatma Sağlama Toplamını da güncelleştirecektir).
Tablo 7 OEM Parametreleri Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
Parametreler[0] | 0 | 48 | Bu alan zorunludur ve Bölüm 3.3.1 içeriğini tanımlar. |
. . . |
. . . |
. . . |
. . . |
Parametreler[9] | 432 | 48 | Bu alan zorunludur ve Bölüm 3.3.1 içeriğini tanımlar. |
Rezerve edildi | 480 | 2BytesPerSectorShift – 480 | Bu alan zorunludur ve içeriği saklıdır. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de BytesPerSectorShift alanını içerir. |
3.3.1 Parametreler[0] ... Parametreler[9]
Bu dizideki her Parametre alanı, Genel Parametreler şablonundan türetilen bir parametre yapısı içerir (bkz . Bölüm 3.3.2). Kullanılmayan Parametreler alanının Null Parametreler yapısı içerdiği olarak tanımlanacaktır (bkz Bölüm 3.3.3).
3.3.2 Genel Parametreler Şablonu
Genel Parametreler şablonu, parametre yapısının temel tanımını sağlar (bkz . Tablo 8). Tüm parametre yapıları bu şablondan türetilir. Bu Genel Parametreler şablonu için destek zorunludur.
Tablo 8 Genel Parametreler Şablonu
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
ParametrelerKılavuzu | 0 | 16 | Bu alan zorunludur ve Bölüm 3.3.2.1 içeriğini tanımlar. |
Özel Tanımlı | 16 | 32 | Bu alan zorunludur ve bu şablondan türetilen yapılar içeriğini tanımlar. |
3.3.2.1 Parametreler Guid Alanı
ParametersGuid alanı, verilen parametre yapısının geri kalanının düzenini belirleyen bir GUID tanımlaması gerekir.
Bu alan için tüm olası değerler geçerlidir; ancak üreticilerin bu şablondan özel parametre yapıları türetirken GUID seçmek için GuidGen.exegibi bir GUID oluşturma aracı kullanması gerekir.
3.3.3 Null Parametreler
Null Parametreler yapısı Genel Parametreler şablonundan türetilir (bkz . Bölüm 3.3.2) ve kullanılmayan parametreler alanını açıklamalı (bkz . Tablo 9). OEM Parametreleri yapısını oluştururken veya güncelleştirirken, uygulamalar kullanılmayan Parametreler alanlarını Null Parametreler yapısıyla doldurur. Ayrıca, OEM Parametreleri yapısını oluştururken veya güncelleştirirken, uygulamalar dizinin sonunda Null Parametreler yapılarını birleştirmeli ve böylece diğer tüm Parametre yapılarını OEM Parametreleri yapısının başında bırakmalıdır.
Null Parametreler yapısı için destek zorunludur.
Tablo 9 Null Parametre Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
ParametrelerKılavuzu | 0 | 16 | Bu alan zorunludur ve Bölüm 3.3.3.1 içeriğini tanımlar. |
Rezerve edildi | 16 | 32 | Bu alan zorunludur ve içeriği saklıdır. |
3.3.3.1 ParametrelerGUID Alanı
ParametersGuid alanı, Genel Parametreler şablonu tarafından sağlanan tanıma uygun olmalıdır (bkz . Bölüm 3.3.2.1).
Guid gösteriminde bu alan için geçerli değer: {00000000-0000-0000-0000-000000000000}.
3.3.4 Flash Parametreleri
Flash Parametre yapısı Genel Parametreler şablonundan türetilir (bkz . Bölüm 3.3.2) ve flash medya için parametreler içerir (bkz . Tablo 10). Flash tabanlı depolama cihazlarının üreticileri bu parametre yapısıyla bir Parameters alanını (tercihen Parameters[0] alanı) doldurabilir. Uygulamalar, okuma/yazma işlemleri sırasında erişim işlemlerini iyileştirmek ve medya biçimlendirmesi sırasında dosya sistemi yapılarının hizalaması için Flash Parametreleri yapısındaki bilgileri kullanabilir.
Flash Parametreleri yapısı desteği isteğe bağlıdır.
Tablo 10 Flash Parametreleri Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
ParametrelerKılavuzu | 0 | 16 | Bu alan zorunludur ve Bölüm 3.3.4.1 içeriğini tanımlar. |
EraseBlockSize | 16 | 4 | Bu alan zorunludur ve Bölüm 3.3.4.2 içeriğini tanımlar. |
Sayfa Boyutu | 20 | 4 | Bu alan zorunludur ve Bölüm 3.3.4.3 içeriğini tanımlar. |
SpareSectors | yirmi dört | 4 | Bu alan zorunludur ve Bölüm 3.3.4.4 içeriğini tanımlar. |
Rastgele Erişim Süresi | 28 | 4 | Bu alan zorunludur ve Bölüm 3.3.4.5 içeriğini tanımlar. |
Programlama Zamanı | 32 | 4 | Bu alan zorunludur ve Bölüm 3.3.4.6 içeriğini tanımlar. |
ReadCycle | 36 | 4 | Bu alan zorunludur ve Bölüm 3.3.4.7 içeriğini tanımlar. |
WriteCycle | 40 | 4 | Bu alan zorunludur ve Bölüm 3.3.4.8 içeriğini tanımlar. |
Rezerve edildi | 44 | 4 | Bu alan zorunludur ve içeriği saklıdır. |
ParametersGuid alanı dışında tüm Flash Parametreleri alanları için tüm olası değerler geçerlidir. Ancak, 0 değeri alanın gerçekten anlamsız olduğunu gösterir (uygulamalar verilen alanı yoksayar).
3.3.4.1 Parametreler Guid Alanı
ParametersGuid alanı, Genel Parametreler şablonunda sağlanan tanıma uygun olmalıdır (bkz. Bölüm 3.3.2.1).
Guid gösteriminde bu alan için geçerli değer: {0A0C7E46-3399-4021-90C8-FA6D389C4BA2}.
3.3.4.2 EraseBlockSize Alanı
EraseBlockSize alanı, flash medyanın silme bloğunun boyutunu bayt cinsinden açıklamalı.
3.3.4.3 Sayfa Boyutu Alanı
PageSize alanı, flash medya sayfasının bayt cinsinden boyutunu açıklamalı.
3.3.4.4 Yedek Sektörler Alanı
SpareSectors alanı, flash medyanın yedekleme işlemleri için sunulan sektör sayısını açıklayacaktır.
3.3.4.5 Rastgele Erişim Süresi Alanı
RandomAccessTime alanı, flash medyanın ortalama rastgele erişim süresini nanosaniye olarak tanımlayacaktır.
3.3.4.6 ProgrammingTime Alanı
ProgrammingTime alanı, flash medyanın ortalama programlama süresini nanosaniye olarak tanımlayacaktır.
3.3.4.7 ReadCycle Alanı
ReadCycle alanı, flash medyanın ortalama okuma döngüsü süresini nanosaniye olarak tanımlayacaktır.
3.3.4.8 WriteCycle Alanı
WriteCycle alanı, nanosaniye olarak ortalama yazma döngüsü süresini açıklamalı.
3.4 Ana ve Yedek Önyükleme Kontrol Toplamı Alt Bölgeleri
Ana ve Yedekleme Önyükleme sağlama toplamlarının her biri, kendi Önyükleme bölgelerindeki diğer tüm alt bölgelerin içeriklerinin dört baytlık sağlama toplamlarının yinelenen bir desenini içerir. Sağlama toplamı hesaplaması, ilgili Önyükleme Kesiminde yer alan VolumeFlags ve PercentInUse alanlarını içermeyecektir (bkz. Şekil 1). Dört baytlık kontrol toplamının yinelenen modeli, ilgili Önyükleme Kontrol Toplamı alt bölgesini alt bölgenin başından sonuna kadar doldurur.
Ana veya Yedekleme Önyükleme bölgelerindeki diğer alt bölgelerden herhangi birinin içeriğini kullanmadan önce, uygulamalar ilgili Önyükleme Sağlama Toplamı'nı doğrulayarak içeriklerini doğrular.
İlk biçim işlemi hem Ana hem de Yedekleme Önyükleme Sağlama Toplamlarını yinelenen sağlama toplamı düzeniyle doldururken, ilgili Önyükleme bölgelerindeki diğer kesimlerin içeriği değiştikçe uygulamalar bu kesimleri güncelleştirecektir.
Şekil 1 Önyükleme Sağlama Toplamı Hesaplaması
UInt32 BootChecksum
(
UCHAR * Sectors, // points to an in-memory copy of the 11 sectors
USHORT BytesPerSector
)
{
UInt32 NumberOfBytes = (UInt32)BytesPerSector * 11;
UInt32 Checksum = 0;
UInt32 Index;
for (Index = 0; Index < NumberOfBytes; Index++)
{
if ((Index == 106) || (Index == 107) || (Index == 112))
{
continue;
}
Checksum = ((Checksum&1) ? 0x80000000 : 0) + (Checksum>>1) + (UInt32)Sectors[Index];
}
return Checksum;
}
4 Dosya Ayırma Tablosu Bölgesi
Dosya Ayırma Tablosu (FAT) bölgesi, biri İlk FAT alt bölgesinde ve diğeri İkinci FAT alt bölgesinde olmak üzere en çok iki FAT içerebilir. NumberOfFats alanı, bu bölgenin kaç FAT içerdiğini açıklar. NumberOfFats alanının geçerli değerleri 1 ve 2'dir. Bu nedenle, İlk FAT alt bölgesi her zaman bir FAT içerir. NumberOfFats alanı iki ise, İkinci FAT alt bölgesi de bir FAT içerir.
VolumeFlags alanının ActiveFat alanı hangi FAT'nin etkin olduğunu açıklar. Yalnızca Ana Önyükleme Bölümündeki VolumeFlags alanı geçerli. Uygulamalar, etkin olmayan FAT'yi eski olarak ele ayacaktır. Etkin olmayan FAT kullanımı ve FAT'ler arasında geçiş yapmak uygulamaya özeldir.
4.1 Birinci ve İkinci FAT Alt Bölgeleri
FAT, Küme Yığınındaki küme zincirlerini açıklamalı (bkz . Tablo 11). Küme zinciri, dosyaların, dizinlerin ve diğer dosya sistemi yapılarının içeriğini kaydetmek için alan sağlayan bir dizi kümedir. FAT, küme dizinlerinin tek bağlantılı listesi olarak küme zincirini temsil eder. İlk iki girdi dışında, FAT içindeki her giriş tam olarak bir kümeyi temsil eder.
Tablo 11 Dosya Ayırma Tablo Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
FatEntry[0] | 0 | 4 | Bu alan zorunludur ve Bölüm 4.1.1 içeriğini tanımlar. |
FatEntry[1] | 4 | 4 | Bu alan zorunludur ve Bölüm 4.1.2 içeriğini tanımlar. |
FatEntry[2] | 8 | 4 | Bu alan zorunludur ve Bölüm 4.1.3 içeriğini tanımlar. |
. . . |
. . . |
. . . |
. . . |
FatEntry[ClusterCount+1] | (ClusterCount + 1) * 4 | 4 | Bu alan zorunludur ve Bölüm 4.1.3 içeriğini tanımlar. ClusterCount + 1 hiçbir zaman FFFFFFF6h'yi aşamaz. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de ClusterCount alanını içerir. |
ExcessSpace | (ClusterCount + 2) * 4 | (FatLength * 2BytesPerSectorShift) – ((ClusterCount + 2) * 4) | Bu alan zorunludur ve varsa içeriği tanımlanmamıştır. Not: Hem Ana hem de Yedekleme Önyükleme Kesimleri ClusterCount, FatLength ve BytesPerSectorShift alanlarını içerir. |
4.1.1 FatEntry[0] Alan
FatEntry[0] alanı, medya türünü ilk baytta (en düşük sipariş bayt) açıklamalı ve kalan üç baytta FFh içermelidir.
Medya türü (ilk bayt) F8h olmalıdır.
4.1.2 FatEntry[1] Alan
FatEntry[1] alanı yalnızca geçmiş öncelik nedeniyle var olur ve ilgilendiğiniz hiçbir şeyi tanımlamaz.
Bu alan için geçerli değer FFFFFFFFh'dir. Uygulamalar bu alanı önceden belirlenmiş değerine başlatacak ve bu alanı herhangi bir amaçla kullanmamalıdır. Uygulamalar bu alanı yorumlamamalı ve çevresindeki alanları değiştiren işlemler genelinde içeriğini korumalıdır.
4.1.3 FatEntry[2] ... FatEntry[ClusterCount+1] Alanlar
Bu dizideki her FatEntry alanı Küme Yığınındaki bir kümeyi temsil edecektir. FatEntry[2] Küme Yığınındaki ilk kümeyi temsil eder ve FatEntry[ClusterCount+1] Küme Yığınındaki son kümeyi temsil eder.
Bu alanlar için geçerli değer aralığı şunlardır:
- 2 ile ClusterCount + 1 arasında, bu da dahil olmak üzere, verilen küme zincirindeki bir sonraki FatEntry'ye işaret eder; verilen FatEntry, belirtilen küme zincirinde kendisinden önce gelen herhangi bir FatEntry'ye işaret etmeyecektir
- Verilen FatEntry'nin karşılık gelen kümesini "bozuk" olarak işaretleyen FFFFFFF7h tam olarak.
- Verilen FatEntry'nin karşılık gelen kümesini küme zincirinin son kümesi olarak işaretleyen tam olarak FFFFFFFFh değeri; Bu değer, belirli bir küme zincirinin son FatEntry değeri için tek geçerli değerdir.
5 Veri Bölgesi
Veri bölgesi, dosya sistemi yapıları, dizinleri ve dosyalar için yönetilen alan sağlayan Küme Yığınını içerir.
5.1 Küme Belleği Alt Bölge
Küme Yığınının yapısı çok basittir (bkz . Tablo 12); art arda gelen her kesim serisi, SectorsPerClusterShift alanının tanımladığı gibi bir kümeyi tanımlar. Daha da önemlisi, Küme Yığını'nın ilk kümesinde doğrudan FatEntry[2] dizinine karşılık gelen iki dizini vardır.
Bir exFAT biriminde Ayırma Bit Eşlemi (bkz . Bölüm 7.1.5), tüm kümelerin ayırma durumunun kaydını tutar. exFAT'ın öncülleri (FAT12, FAT16 ve FAT32) ile arasındaki en önemli farklardan biri, bir FAT'nin Küme Yığını'ndaki tüm kümelerin ayrım durumlarını kaydetmesidir.
Tablo 12 Küme Yığın Yapısı
Alan Adı | Uzaklık (sektör) |
Boyut (sektörler) |
Açıklamalar |
---|---|---|---|
Küme[2] | ClusterHeapOffset | 2SektörBaşınaKümeKaydırma | Bu alan zorunludur ve Bölüm 5.1.1 içeriğini tanımlar. Not: Ana ve Yedekleme Önyükleme Kesimleri hem ClusterHeapOffset hem de SectorsPerClusterShift alanlarını içerir. |
. . . |
. . . |
. . . |
. . . |
Küme[KümeSayısı+1] | ClusterHeapOffset + (ClusterCount – 1) * 2SectorsPerClusterShift | 2SektörBaşınaKümeKaydırma | Bu alan zorunludur ve Bölüm 5.1.1 içeriğini tanımlar. Not: Hem Ana hem de Yedekleme Önyükleme Kesimleri ClusterCount, ClusterHeapOffset ve SectorsPerClusterShift alanlarını içerir. |
5.1.1 Küme[2] ... Küme[KümeSayısı+1] Alanlar
Bu dizideki her Küme alanı, boyutu SectorsPerClusterShift alanı tarafından tanımlanan bir dizi bitişik kesimdir.
6 Dizin Yapısı
exFAT dosya sistemi, Küme Yığını'nda (Cluster Heap) bulunan dosya sistemi yapılarını ve dosyaları yönetmek için bir dizin ağacı yaklaşımı kullanır. Dizinler, dizin ağacında ebeveyn ve çocuk öğe arasında bire çok ilişkiye sahiptir.
FirstClusterOfRootDirectory alanının başvurduğu dizin, dizin ağacının köküdür. Diğer tüm dizinler kök dizinden tek bir bağlantı yapısı şeklinde türetilir.
Her dizin bir dizi dizin girdisi içerir (bkz . Tablo 13).
Bir veya daha fazla dizin girdisi, dosya sistemi yapısı, alt dizin veya dosya gibi ilgi çekici bir şeyi açıklayan bir dizin girdi kümesinde birleştirilir.
Tablo 13 Dizin Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
DizinGirişi[0] | 0 | 32 | Bu alan zorunludur ve Bölüm 6.1 içeriğini tanımlar. |
. . . |
. . . |
. . . |
. . . |
DizinGiriş[N–1] | (N – 1) * 32 | 32 | Bu alan zorunludur ve Bölüm 6.1 içeriğini tanımlar. N, DirectoryEntry alanlarının sayısı, verilen dizini içeren küme zincirinin bayt cinsinden boyutudur ve bir DirectoryEntry alanının boyutuna (32 bayt) bölünür. |
6.1 DirectoryEntry[0] ... DirectoryEntry[N--1]
Bu dizideki her DirectoryEntry alanı Genel DirectoryEntry şablonundan türetilir (bkz . Bölüm 6.2).
6.2 Genel DirectoryEntry Şablonu
Genel DirectoryEntry şablonu, dizin girdileri için temel tanımı sağlar (bkz . Tablo 14). Bu şablondan türetilen tüm dizin giriş yapıları ve yalnızca Microsoft tarafından tanımlanan dizin giriş yapıları geçerlidir (exFAT, Bölüm 7.8 ve Bölüm 7.9'da tanımlananlar dışında üretici tanımlı dizin giriş yapıları için hükümlere sahip değildir). Genel DirectoryEntry şablonunu yorumlama özelliği zorunludur.
Tablo 14 Genel DirectoryEntry Şablonu
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 6.2.1 içeriğini tanımlar. |
Özel Tanımlı | 1 | 19 | Bu alan zorunludur ve bu şablondan türetilen yapılar içeriğini tanımlayabilir. |
İlkKüme | 20 | 4 | Bu alan zorunludur ve Bölüm 6.2.2 içeriğini tanımlar. |
Veri Uzunluğu | yirmi dört | 8 | Bu alan zorunludur ve Bölüm 6.2.3 içeriğini tanımlar. |
6.2.1 EntryType Alanı
EntryType alanında, alanın değerinin tanımladığı üç kullanım modu vardır (aşağıdaki listeye bakın).
- 00h, dizin sonu işaretçisi ve aşağıdaki koşullar geçerlidir:
- Verilen DirectoryEntry'deki diğer tüm alanlar aslında ayrılmıştır
- Verilen dizindeki sonraki tüm dizin girdileri de dizin sonu işaretleyicileridir
- Dizin sonu işaretçileri yalnızca dizin giriş kümeleri dışında geçerlidir.
- Uygulamalar ihtiyaç duyulduğunda dizin sonu işaretleyicilerinin üzerine yazabilir.
- 01h ve 7Fh (her ikisi dahil) arasında, kullanılmayan dizin girişi işaretleyicisi olup aşağıdaki koşullar geçerlidir:
- Verilen DirectoryEntry'deki diğer tüm alanlar aslında tanımlanmamış
- Kullanılmayan dizin girdileri yalnızca dizin girdi kümelerinin dışında geçerlidir
- Uygulamalar, kullanılmayan dizin girdilerinin üzerine gerektiği şekilde yazabilir
- Bu değer aralığı, 0 değerini içeren InUse alanına karşılık gelir (bkz. Bölüm 6.2.1.4)
- Normal bir dizin girişi olan ve aşağıdaki koşullar geçerli olan 81h ile FFh (dahil) arasında:
- EntryType alanının içeriği (bkz . Tablo 15), DirectoryEntry yapısının geri kalanının düzenini belirler
- Bu değer aralığı ve yalnızca bu değer aralığı bir dizin giriş kümesi içinde geçerlidir
- Bu değer aralığı doğrudan 1 değerini içeren InUse alanına karşılık gelir (bkz . Bölüm 6.2.1.4)
InUse alanında değişiklik yapılmasının (bkz. Bölüm 6.2.1.4) yanlışlıkla dizin sonu işaretçisi oluşumuna neden olmasını önlemek için, 80h değeri geçersizdir.
Tablo 15 Genel EntryType Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
TypeCode | 0 | 5 | Bu alan zorunludur ve Bölüm 6.2.1.1 içeriğini tanımlar. |
TürÖnemlilik | 5 | 1 | Bu alan zorunludur ve Bölüm 6.2.1.2 içeriğini tanımlar. |
TürKategori | 6 | 1 | Bu alan zorunludur ve Bölüm 6.2.1.3 içeriğini tanımlar. |
Kullanımda | 7 | 1 | Bu alan zorunludur ve Bölüm 6.2.1.4 içeriğini tanımlar. |
6.2.1.1 TypeCode Alanı
TypeCode alanı, verilen dizin girdisinin belirli türünü kısmen açıklar. Bu alanın yanı sıra TypeImportance ve TypeCategory alanları (sırasıyla Bölüm 6.2.1.2 ve Bölüm 6.2.1.3'e bakın) verilen dizin girdisinin türünü benzersiz olarak tanımlar.
TypeImportance ve TypeCategory alanlarının her ikisi de 0 değerini içermediği sürece, bu alanın tüm olası değerleri geçerlidir; bu durumda, 0 değeri bu alan için geçersizdir.
6.2.1.2 TypeImportance Alanı
TypeImportance alanı, verilen dizin girişinin önemini açıklayacaktır.
Bu alan için geçerli değerler:
- 0, verilen dizin girişinin kritik olduğu anlamına gelir (sırasıyla kritik birincil ve kritik ikincil dizin girdileri için Bölüm 6.3.1.2.1 ve Bölüm 6.4.1.2.1'e bakın)
- 1, verilen dizin girişinin zararsız olduğu anlamına gelir (sırasıyla zararsız birincil ve zararsız ikincil dizin girdileri için bkz. Bölüm6.3.1.2.2 ve Bölüm 6.4.1.2.2 )
6.2.1.3 TürKategori Alanı
TypeCategory alanı, verilen dizin girişinin kategorisini açıklayacaktır.
Bu alan için geçerli değerler:
- 0, verilen dizin girdisinin birincil olduğu anlamına gelir (bkz . Bölüm 6.3)
- 1, verilen dizin girişinin ikincil olduğu anlamına gelir (bkz . Bölüm 6.4)
6.2.1.4 InUse Alanı
InUse alanı, belirtilen dizin girişinin kullanımda olup olmadığını açıklar.
Bu alan için geçerli değerler:
- 0, verilen dizin girdisinin kullanımda olmadığı anlamına gelir; Bu, verilen yapının aslında kullanılmayan bir dizin girdisi olduğu anlamına gelir
- 1, verilen dizin girişinin kullanımda olduğu anlamına gelir; Bu, verilen yapının normal bir dizin girdisi olduğu anlamına gelir
6.2.2 Birinci Küme Alanı
FirstCluster alanı, verilen dizin girişiyle ilişkili Küme Yığınındaki ilk ayırma kümesinin dizinini içermelidir.
Bu alan için geçerli değer aralığı:
- Tam olarak 0, yani küme ayırma yok
- Geçerli küme dizinlerinin aralığı olan 2 ile ClusterCount + 1 arasında
Küme ayırma türev yapısıyla uyumlu değilse, bu şablondan türetilen yapılar hem FirstCluster hem de DataLength alanlarını yeniden tanımlanabilir.
6.2.3 DataLength Alanı
DataLength alanı, ilişkili küme ayırmasının içerdiği verilerin boyutunu bayt cinsinden açıklar.
Bu alan için geçerli değer aralığı:
- En az 0; FirstCluster alanı 0 değerini içeriyorsa, bu alanın tek geçerli değeri 0'dır
- En çok ClusterCount * 2SektörlerPerClusterShift* 2BaytlarPerSektörShift
Bu şablondan türetilen yapılar, türev yapı için bir küme ayırma mümkün değilse hem FirstCluster hem de DataLength alanlarını yeniden tanımlanabilir.
6.3 Genel Birincil DizinGiriş Şablonu
Dizin girdi kümesindeki ilk dizin girdisi birincil dizin girdisi olmalıdır. Varsa, dizin girdi kümesindeki sonraki tüm dizin girişleri ikincil dizin girdileri olacaktır (bkz . Bölüm 6.4).
Genel Birincil DirectoryEntry şablonunu yorumlama özelliği zorunludur.
Tüm birincil dizin giriş yapısı, Genel DirectoryEntry şablonundan türetilen Genel Birincil DirectoryEntry şablonundan türetilir (bkz. Tablo 16), (bkz. Bölüm 6.2).
Tablo 16 Genel Birincil Dizin Varlığı Şablonu
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 6.3.1 içeriğini tanımlar. |
İkincil Sayım | 1 | 1 | Bu alan zorunludur ve Bölüm 6.3.2 içeriğini tanımlar. |
SetChecksum | 2 | 2 | Bu alan zorunludur ve Bölüm 6.3.3 içeriğini tanımlar. |
Genel Birincil Bayraklar | 4 | 2 | Bu alan zorunludur ve Bölüm 6.3.4 içeriğini tanımlar. |
Özel Tanımlı | 6 | 14 | Bu alan zorunludur ve bu şablondan türetilen yapılar içeriğini tanımlar. |
İlkKüme | 20 | 4 | Bu alan zorunludur ve Bölüm 6.3.5 içeriğini tanımlar. |
Veri Uzunluğu | yirmi dört | 8 | Bu alan zorunludur ve Bölüm 6.3.6 içeriğini tanımlar. |
6.3.1 EntryType Alanı
EntryType alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1).
6.3.1.1 TypeCode Alanı
TypeCode alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1.1).
6.3.1.2 TürÖnemi Alanı
TypeImportance alanı, Generic DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1.2).
6.3.1.2.1 Kritik Birincil Dizin Girdileri
Kritik birincil dizin girdileri, exFAT biriminin düzgün yönetimi için kritik olan bilgileri içerir. Yalnızca kök dizin kritik birincil dizin girdileri içerir (Dosya dizini girdileri özel durum oluşturur, bkz . Bölüm 7.4).
Kritik birincil dizin girdilerinin tanımı ana exFAT düzeltme numarasıyla ilişkilidir. Uygulamalar tüm kritik birincil dizin girdilerini destekleyecek ve yalnızca bu belirtimin tanımladığı kritik birincil dizin giriş yapılarını kaydedecektir.
6.3.1.2.2 Benign Birincil Dizin Girdileri
Zararsız birincil dizin girdileri, exFAT birimini yönetmek için yararlı olabilecek ek bilgiler içerir. Herhangi bir dizin zararsız birincil dizin girdileri içerebilir.
Zararsız birincil dizin girdilerinin tanımı, küçük exFAT düzeltme numarasıyla ilişkilidir. Bu spesifikasyon veya herhangi bir sonraki spesifikasyonun tanımladığı zararsız birincil dizin girdilerine destek verilmesi isteğe bağlıdır. Tanınmayan zararsız bir birincil dizin girdisi, dizin girdi kümesinin tamamını tanınmamış olarak işler (ilgili dizin girdisi şablonlarının tanımının ötesinde).
6.3.1.3 TypeCategory Alanı
TypeCategory alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz. Bölüm 6.2.1.3).
Bu şablon için bu alanın geçerli değeri 0 olmalıdır.
6.3.1.4 InUse Alanı
InUse alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1.4).
6.3.2 İkincil Sayı Alanı
SecondaryCount alanı, verilen birincil dizin girdisini hemen izleyen ikincil dizin girdilerinin sayısını açıklayacaktır. Bu ikincil dizin girdileri ve verilen birincil dizin girdileri, dizin giriş kümesini oluşturur.
Bu alan için geçerli değer aralığı:
- En az 0, bu birincil dizin girdisinin dizin giriş kümesindeki tek giriş olduğu anlamına gelir
- En fazla 255, yani bu birincil dizin girdisi ve sonraki 255 dizin girdisi, dizin girdisi kümesini oluşturur.
Bu şablondan türetilen kritik birincil dizin giriş yapıları hem SecondaryCount hem de SetChecksum alanlarını yeniden tanımlanabilir.
6.3.3 SetChecksum Alanı
SetChecksum alanı, belirtilen dizin girdi kümesindeki tüm dizin girdilerinin sağlama toplamını içermelidir. Ancak sağlama toplamı bu alanı dışlar (bkz. Şekil 2). Uygulamalar, belirtilen dizin girdi kümesindeki başka bir dizin girdisi kullanmadan önce bu alanın içeriğinin geçerli olduğunu doğrulayacaktır.
Bu şablondan türetilen kritik birincil dizin giriş yapıları hem SecondaryCount hem de SetChecksum alanlarını yeniden tanımlanabilir.
Şekil 2 EntrySetChecksum Hesaplaması
UInt16 EntrySetChecksum
(
UCHAR * Entries, // points to an in-memory copy of the directory entry set
UCHAR SecondaryCount
)
{
UInt16 NumberOfBytes = ((UInt16)SecondaryCount + 1) * 32;
UInt16 Checksum = 0;
UInt16 Index;
for (Index = 0; Index < NumberOfBytes; Index++)
{
if ((Index == 2) || (Index == 3))
{
continue;
}
Checksum = ((Checksum&1) ? 0x8000 : 0) + (Checksum>>1) + (UInt16)Entries[Index];
}
return Checksum;
}
6.3.4 GenelBirincilBayraklar Alanı
GeneralPrimaryFlags alanı bayraklar içerir (bkz . Tablo 17).
Bu şablondan türetilen kritik birincil dizin giriş yapıları bu alanı yeniden tanımlanabilir.
Tablo 17 Genel PrimaryFlags Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
Tahsis Mümkün | 0 | 1 | Bu alan zorunludur ve Bölüm 6.3.4.1 içeriğini tanımlar. |
NoFatChain | 1 | 1 | Bu alan zorunludur ve Bölüm 6.3.4.2 içeriğini tanımlar. |
Özel Tanımlı | 2 | 14 | Bu alan zorunludur ve bu şablondan türetilen yapılar bu alanı tanımlayabilir. |
6.3.4.1 Ayırma Mümkün Alanı
AllocationPossible alanı, küme yığınındaki bir ayırmanın verilen dizin girdisi için mümkün olup olmadığını açıklar.
Bu alan için geçerli değerler:
- 0, kümelerle ilişkili ayırmanın mümkün olmadığı ve FirstCluster ve DataLength alanlarının tanımsız olduğu anlamına gelir (bu şablondan türetilen yapılar bu alanları yeniden tanımlanabilir)
- 1, kümelerle ilişkili ayırmanın mümkün olduğu ve FirstCluster ve DataLength alanlarının tanımlandığı gibi olduğu anlamına gelir
6.3.4.2 NoFatChain Alanı
NoFatChain alanı, etkin FAT'nin verilen ayırmanın küme zincirini tanımlayıp tanımlamadığını gösterir.
Bu alan için geçerli değerler:
- 0, ayırmanın küme zincirine karşılık gelen FAT girdilerinin geçerli olduğu ve uygulamaların bunları yorumladığı anlamına gelir; AllocationPossible alanı 0 değerini içeriyorsa veya AllocationPossible alanı 1 değerini ve FirstCluster alanı 0 değerini içeriyorsa, bu alanın tek geçerli değeri 0'dır
- 1, ilişkili ayırmanın bitişik bir küme serisi olduğu anlamına gelir; kümeler için karşılık gelen FAT girişleri geçersizdir ve uygulamalar bunları yorumlamaz; uygulamaları ilişkili ayırmanın boyutunu hesaplamak için aşağıdaki denklemi kullanabilir: DataLength / (2SectorsPerClusterShift* 2BytesPerSectorShift) en yakın tamsayıya yuvarlanır
Bu şablondan türetilen kritik birincil dizin giriş yapıları GeneralPrimaryFlags alanını yeniden tanımlarsa, ilişkili ayırmanın küme zinciri için karşılık gelen FAT girişleri geçerlidir.
6.3.5 İlkCluster Alanı
FirstCluster alanı, Generic DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.2).
NoFatChain biti 1 ise, FirstCluster küme yığınında geçerli bir kümeyi işaret etmelidir.
Bu şablondan türetilen kritik birincil dizin giriş yapıları FirstCluster ve DataLength alanlarını yeniden tanımlanabilir. Bu şablondan türetilen diğer yapılar, FirstCluster ve DataLength alanlarını yalnızca AllocationPossible alanı 0 değerini içeriyorsa yeniden tanımlanabilir.
6.3.6 DataLength Alanı
DataLength alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.3).
NoFatChain biti 1 ise DataLength sıfır olmamalıdır. FirstCluster alanı sıfırsa DataLength de sıfır olmalıdır.
Bu şablondan türetilen kritik birincil dizin giriş yapıları FirstCluster ve DataLength alanlarını yeniden tanımlanabilir. Bu şablondan türetilen diğer yapılar, FirstCluster ve DataLength alanlarını yalnızca AllocationPossible alanı 0 değerini içeriyorsa yeniden tanımlanabilir.
6.4 Genel İkincil DizinGirdisi Şablonu
İkincil dizin girdilerinin merkezi amacı, dizin giriş kümesi hakkında ek bilgi sağlamaktır. Genel İkincil DirectoryEntry şablonunu yorumlama özelliği zorunludur.
Hem kritik hem de zararsız ikincil dizin girdilerinin tanımı, küçük exFAT düzeltme numarasıyla ilişkilidir. Bu belirtimi veya sonraki belirtimleri tanımlayan kritik veya zararsız ikincil dizin girdileri için destek isteğe bağlıdır.
Tüm ikincil dizin giriş yapıları, Genel DizinGirişi şablonundan türetilen Genel İkincil DizinGirişi şablonundan türetilmiştir (bkz. Tablo 18) ve Genel DizinGirişi şablonuna dayanır (bkz. Bölüm 6.2).
Tablo 18 Genel İkincil Dizin Girdisi Şablonu
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 6.4.1 içeriğini tanımlar. |
GenelİkincilBayraklar | 1 | 1 | Bu alan zorunludur ve Bölüm 6.4.2 içeriğini tanımlar. |
Özel Tanımlı | 2 | 18 | Bu alan zorunludur ve bu şablondan türetilen yapılar içeriğini tanımlar. |
İlkKüme | 20 | 4 | Bu alan zorunludur ve Bölüm 6.4.3 içeriğini tanımlar. |
Veri Uzunluğu | yirmi dört | 8 | Bu alan zorunludur ve Bölüm 6.4.4 içeriğini tanımlar. |
6.4.1 EntryType Alan Bölümü
EntryType alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1)
6.4.1.1 TypeCode Alanı
TypeCode alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1.1).
6.4.1.2 TypeImportance Alanı
TypeImportance alanı, Generic DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1.2).
6.4.1.2.1 Kritik İkincil Dizin Girdileri
Kritik ikincil dizin girdileri, içerdiği dizin giriş kümesinin düzgün yönetimi için kritik öneme sahip bilgiler içerir. Belirli bir kritik ikincil dizin girişi için destek isteğe bağlı olsa da, tanınmayan bir kritik dizin girdisi tüm dizin girdisini tanınmayan olarak işler (ilgili dizin girdisi şablonlarının tanımının dışında).
Ancak, bir dizin girdi kümesi, bir uygulamanın tanımadığı en az bir kritik ikincil dizin girdisi içeriyorsa, uygulama en çok dizin girdi kümesindeki dizin girdilerinin şablonlarını yorumlar ve dizin giriş kümesindeki herhangi bir dizin girdisiyle ilişkili veri ayırmasını yorumlamaz (Dosya dizin girdileri bir özel durum, bkz . Bölüm 7.4).
6.4.1.2.2 Zararsız İkincil Dizin Girdileri
Zararsız ikincil dizin girdileri, içerdiği dizin giriş kümesini yönetmek için yararlı olabilecek ek bilgiler içerir. Belirli bir zararsız ikincil dizin girişi için destek isteğe bağlıdır. Tanınmayan zararsız ikincil dizin girdileri, dizin girdi kümesinin tamamını tanınmamış olarak işlemez.
Uygulamalar tanımadığı ve zararsız olan herhangi bir ikincil girdiyi yoksayabilir.
6.4.1.3 TypeCategory Alanı
TypeCategory alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz. Bölüm 6.2.1.3).
Bu şablon için bu alanın geçerli değeri 1'dir.
6.4.1.4 InUse Alanı
InUse alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.1.4).
6.4.2 GenelSacondaryFlags Alanı
GeneralSecondaryFlags alanı bayraklar içerir (bkz . Tablo 19).
Tablo 19 Genel İkincil Bayraklar Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
Tahsis Mümkün | 0 | 1 | Bu alan zorunludur ve Bölüm 6.4.2.1 içeriğini tanımlar. |
NoFatChain | 1 | 1 | Bu alan zorunludur ve Bölüm 6.4.2.2 içeriğini tanımlar. |
Özel Tanımlı | 2 | 6 | Bu alan zorunludur ve bu şablondan türetilen yapılar bu alanı tanımlayabilir. |
6.4.2.1 Mümkün Ayırma Alanı
AllocationPossible alanı, Genel Birincil DizinGiriş şablonundaki aynı adlı alanla aynı tanıma sahip olmalıdır (bkz . Bölüm 6.3.4.1).
6.4.2.2 NoFatChain Alanı
NoFatChain alanı, Genel Birincil DizinEntry şablonundaki aynı adlı alanla aynı tanıma sahip olmalıdır (bkz . Bölüm 6.3.4.2).
6.4.3 Birinci Küme Alanı
FirstCluster alanı, Generic DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.2).
NoFatChain biti 1 ise, FirstCluster küme yığınında geçerli bir kümeyi işaret etmelidir.
6.4.4 DataLength Alanı
DataLength alanı, Genel DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.2.3).
NoFatChain biti 1 ise DataLength sıfır olmamalıdır. FirstCluster alanı sıfırsa DataLength de sıfır olmalıdır.
7 Dizin Girişi Tanımları
ExFAT dosya sisteminin 1.00 düzeltmesi aşağıdaki dizin girdilerini tanımlar:
- Kritik öncelikli
- Zararsız birincil
- Birim GUID'i (Bölüm 7.5)
- TexFAT Doldurma (Bölüm 7.10)
- Kritik ikincil
- İyi huylu sekonder
7.1 Tahsis Bit Eşlem Dizini Girişi
exFAT dosya sisteminde FAT, kümelerin ayırma durumunu açıklamaz; bunun yerine Ayırma Bit Eşlemi yapar. Ayırma Bit Eşlemleri Küme Yığınında bulunur (bkz . Bölüm 7.1.5) ve kök dizinde ilgili kritik birincil dizin girdileri vardır (bkz . Tablo 20).
NumberOfFats alanı, kök dizindeki geçerli Ayırma Bit Eşlem dizini girdilerinin sayısını belirler. NumberOfFats alanı 1 değerini içeriyorsa, tek geçerli Ayırma Bit Eşlem dizini girdisi sayısı 1'dir. Ayrıca, bir Ayırma Bit Eşlemi dizin girdisi yalnızca İlk Ayırma Bit Eşlemi'ni açıklıyorsa geçerlidir (bkz . Bölüm 7.1.2.1). NumberOfFats alanı 2 değerini içeriyorsa, tek geçerli Ayırma Bit Eşlem dizini girdisi sayısı 2'dir. Ayrıca, iki Ayırma Bit Eşlemi dizin girdisi yalnızca biri İlk Ayırma Bit Eşlemini, diğeri İkinci Ayırma Bit Eşlemini açıklarsa geçerlidir.
Tablo 20 Tahsis Bit Eşlem Dizin Girdisi Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.1.1 içeriğini tanımlar. |
Bitmap Bayrakları | 1 | 1 | Bu alan zorunludur ve Bölüm 7.1.2 içeriğini tanımlar. |
Rezerve edildi | 2 | 18 | Bu alan zorunludur ve içeriği saklıdır. |
İlkKüme | 20 | 4 | Bu alan zorunludur ve Bölüm 7.1.3 içeriğini tanımlar. |
Veri Uzunluğu | yirmi dört | 8 | Bu alan zorunludur ve Bölüm 7.1.4 içeriğini tanımlar. |
7.1.1 EntryType Alanı
EntryType alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1).
7.1.1.1 TypeCode Alanı
TypeCode alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.1).
Ayırma Bit Eşlemi dizin girdisi için bu alanın geçerli değeri 1'dir.
7.1.1.2 TypeImportance Alanı
TypeImportance alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.2).
Ayırma Bit Eşlemi dizin girdisi için bu alan için geçerli değer 0'dır.
7.1.1.3 TypeCategory Alanı
TypeCategory alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.3).
7.1.1.4 InUse Alanı
InUse alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.4).
7.1.2 BitmapFlags Alanı
BitmapFlags alanı bayraklar içerir (bkz . Tablo 21).
Tablo 21 BitmapFlags Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
BitmapIdentifier | 0 | 1 | Bu alan zorunludur ve Bölüm 7.1.2.1 içeriğini tanımlar. |
Rezerve edildi | 1 | 7 | Bu alan zorunludur ve içeriği saklıdır. |
7.1.2.1 BitmapIdentifier Alanı
BitmapIdentifier alanı, verilen dizin girişinin tanımladığı Ayırma Bit Eşlemi'ni gösterir. Uygulamalar İlk Ayırma Bit Eşlemini İlk FAT ile birlikte kullanacak ve İkinci Ayırma Bit Eşlemini İkinci FAT ile birlikte kullanacaktır. ActiveFat alanında hangi FAT ve Ayırma Bit Eşlemi'nin etkin olduğu açıklanır.
Bu alan için geçerli değerler:
- 0, verilen dizin girdisinin İlk Ayırma Bit Eşlemi'ni tanımladığı anlamına gelir
- 1, verilen dizin girdisinin İkinci Ayırma Bit Eşlemi'ni tanımladığı ve yalnızca NumberOfFats değeri 2 olduğunda mümkün olduğu anlamına gelir
7.1.3 FirstCluster Alanı
FirstCluster alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.5).
Bu alan, FAT'nin belirttiği gibi Ayırma Bit Eşlemi'ni barındıran küme zincirinin ilk kümesinin dizinini içerir.
7.1.4 DataLength Alanı
DataCluster alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.6).
7.1.5 Tahsis Bit Eşlemi
Ayırma Bit Eşlemi, Küme Yığınındaki kümelerin ayırma durumunu kaydeder. Ayırma Bit Eşlemindeki her bit, karşılık gelen kümesinin ayırma için kullanılabilir olup olmadığını gösterir.
Ayırma Bit Eşlemi, en düşükten en yüksek dizine kadar olan kümeleri temsil eder (bkz . Tablo 22). Geçmiş nedenlerden dolayı, ilk kümenin dizini 2'ye sahiptir.
Uyarı
Bit eşlem içindeki ilk bit, ilk baytın en düşük sıralı bitidir.
Tablo 22 Ayırma Bit Haritası Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
BitmapEntry[2] | 0 | 1 | Bu alan zorunludur ve Bölüm 7.1.5.1 içeriğini tanımlar. |
. . . |
. . . |
. . . |
. . . |
BitmapEntry[ClusterCount+1] | ClusterCount - 1 | 1 | Bu alan zorunludur ve Bölüm 7.1.5.1 içeriğini tanımlar. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de ClusterCount alanını içerir. |
Rezerve edildi | Küme Sayısı | (DataLength * 8) – KümeSayısı | Bu alan zorunludur ve içeriği varsa koruma altına alınmıştır. Not: Ana ve Yedekleme Önyükleme Kesimlerinin her ikisi de ClusterCount alanını içerir. |
7.1.5.1 BitmapEntry[2] ... BitmapEntry[ClusterCount+1] Alanlar
Bu dizideki her BitmapEntry alanı Küme Yığını'ndaki bir kümeyi temsil eder. BitmapEntry[2] Küme Yığınındaki ilk kümeyi temsil eder ve BitmapEntry[ClusterCount+1] Küme Yığınındaki son kümeyi temsil eder.
Bu alanlar için geçerli değerler şunlardır:
- 0, ilgili kümeyi tahsis için uygun olarak açıklar
- 1, karşılık gelen kümeyi ayırma için kullanılabilir değil olarak açıklar (bir küme ayırması ilgili kümeyi zaten tüketebilir veya etkin FAT ilgili kümeyi kötü olarak tanımlayabilir)
7.2 Büyük Harf Tablosu Dizin Girdisi
Küçükten büyüğe harf dönüşüm tablosu, küçük harfleri büyük harflere dönüştürmeyi belirler. Unicode karakterleri kullanan Dosya Adı dizin girdisi (bkz. Bölüm 7.7) ve exFAT dosya sisteminin büyük/küçük harfe duyarsız olması ve büyük/küçük harf koruması olması nedeniyle bu önemlidir. Büyük/Küçük Harf Tablosu Küme Yığını'nda bulunur (bkz . Bölüm 7.2.5) ve kök dizinde buna karşılık gelen bir kritik birincil dizin girdisi vardır (bkz . Tablo 23). Büyük Harf Tablosu dizin girdilerinin geçerli sayısı 1'dir.
Büyük/Küçük Harf Tablosu ile dosya adları arasındaki ilişki nedeniyle, biçimlendirme işlemlerinin bir sonucu dışında, uygulamalar Büyük/Küçük Harf Tablosunu değiştirmemelidir.
Tablo 23 Büyük Harf Tablosu Dizin Girişi Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.2.1 içeriğini tanımlar. |
Ayrılmış1 | 1 | 3 | Bu alan zorunludur ve içeriği saklıdır. |
TableChecksum | 4 | 4 | Bu alan zorunludur ve Bölüm 7.2.2 içeriğini tanımlar. |
Rezerve2 | 8 | 12 | Bu alan zorunludur ve içeriği saklıdır. |
İlkKüme | 20 | 4 | Bu alan zorunludur ve Bölüm 7.2.3 içeriğini tanımlar. |
Veri Uzunluğu | yirmi dört | 8 | Bu alan zorunludur ve Bölüm 7.2.4 içeriğini tanımlar. |
7.2.1 EntryType Alanı
EntryType alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1).
7.2.1.1 TypeCode Alanı
TypeCode alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.1).
Büyük Harf Tablosu dizin girdisi için bu alanın geçerli değeri 2'dir.
7.2.1.2 TypeImportance Alanı
TypeImportance alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.2).
Büyük/Küçük Harf Tablosu dizin girdisi için bu alanın geçerli değeri 0'dır.
7.2.1.3 TypeCategory Alanı
TypeCategory alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.3).
7.2.1.4 InUse Alanı
InUse alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.4).
7.2.2 TableChecksum Alanı
TableChecksum alanı, Büyük Harf Tablosunun checksum'unu içerir (FirstCluster ve DataLength alanlarının tanımladığı). Uygulamalar, Büyük Harf Tablosu'nu kullanmadan önce bu alanın içeriğinin geçerli olduğunu doğrulamalıdır.
Şekil 3 TableChecksum Hesaplaması
UInt32 TableChecksum
(
UCHAR * Table, // points to an in-memory copy of the up-case table
UInt64 DataLength
)
{
UInt32 Checksum = 0;
UInt64 Index;
for (Index = 0; Index < DataLength; Index++)
{
Checksum = ((Checksum&1) ? 0x80000000 : 0) + (Checksum>>1) + (UInt32)Table[Index];
}
return Checksum;
}
7.2.3 İlkKüme Alanı
FirstCluster alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.5).
Bu alan, FAT'nin açıkladığı gibi, Yukarı Servis Talebi Tablosunu barındıran küme zincirinin ilk kümesinin dizinini içerir.
7.2.4 DataLength Alanı
DataCluster alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.6).
7.2.5 Büyük/Küçük Harf Tablosu
Büyük/küçük harf tablosu, unicode karakter eşlemeleri dizisidir. Karakter eşlemesi, büyük harf tablosundaki alanın dizininin büyük harfe dönüştürülecek Unicode karakterini temsil ettiği 2 baytlık bir alandan ve büyük harf Unicode karakterini temsil eden 2 baytlık alandan oluşur.
İlk 128 Unicode karakteri zorunlu eşlemelere sahiptir (bkz . Tablo 24). İlk 128 Unicode karakterinden herhangi biri için başka bir karakter eşlemesi olan bir büyük harf tablosu geçersizdir.
Yalnızca zorunlu eşleme aralığındaki karakterleri destekleyen uygulamalar, büyük harf tablosunun geri kalanının eşlemelerini yoksayabilir. Bu tür uygulamalar yalnızca dosyaları oluştururken veya yeniden adlandırırken zorunlu eşleme aralığındaki karakterleri kullanır (Dosya Adı dizin girdisi aracılığıyla bkz. Bölüm 7.7). Mevcut dosya adlarını büyük harf yaparken, bu tür uygulamalar zorunlu olmayan eşleme aralığındaki karakterleri büyük harf yapmaz, ancak sonuçta elde edilen büyük harfli dosya adında dokunmayacaktır (bu, kısmi bir büyük harf dönüşümüdür). Dosya adlarını karşılaştırırken, bu tür uygulamalar yalnızca zorunlu olmayan eşleme aralığındaki Unicode karakterleriyle karşılaştırma altında adından farklı olan dosya adlarını eşdeğer olarak ele ayacaktır. Bu tür dosya adları yalnızca potansiyel olarak eşdeğer olsa da, bu tür uygulamalar tamamen büyük harfle yazılmış dosya adının karşılaştırma altındaki adla çakışmadığından emin olamaz.
Tablo 24 Zorunlu ilk 128 büyük harfle yazım tablo girdileri
Tablo dizini | + 0 | + 1 | + 2 | + 3 | + 4 | + 5 | + 6 | + 7 |
---|---|---|---|---|---|---|---|---|
0000h | 00:00 | 0001h | 0002h | 0003h | 0004h | 0005h | 0006h | 0007h |
0008h | 0008h | 0009h | 000Ah | 000Bh | 000Ch | 000Dh | 000Eh | 000Fh |
0010h | 0010h | 0011h | 0012h | 0013h | 0014h | 0015h | 0016h | 0017h |
0018h | 0018h | 0019h | 001Ah | 001Bh | 001Ch | 001Dh | 001Eh | 001Fh |
0020h | 0020h | 0021h | 0022h | 0023h | 0024h | 0025h | 0026h | 0027h |
0028h | 0028h | 0029h | 002Ah | 002Bh | 002Ch | 002Dh | 002Eh | 002Fh |
0030h | 0030h | 0031h | 0032h | 0033h | 0034h | 0035h | 0036h | 0037h |
0038h | 0038h | 0039h | 003Ah | 003Bh | 003Ch | 003Dh | 003Eh | 003Fh |
0040h | 0040h | 0041h | 0042h | 0043h | 0044h | 0045h | 0046h | 0047h |
0048h | 0048h | 0049h | 004Ah | 004Bh | 004Ch | 004Dh | 004Eh | 004Fh |
0050h | 0050h | 0051h | 0052h | 0053h | 0054h | 0055h | 0056h | 0057h |
0058h | 0058h | 0059h | 005Ah | 005Bh | 005Ch | 005Dh | 005Eh | 005Fh |
0060h | 0060h | 0041h | 0042h | 0043h | 0044h | 0045h | 0046h | 0047h |
0068h | 0048h | 0049h | 004Ah | 004Bh | 004Ch | 004Dh | 004Eh | 004Fh |
0070h | 0050h | 0051h | 0052h | 0053h | 0054h | 0055h | 0056h | 0057h |
0078h | 0058h | 0059h | 005Ah | 007Bh | 007Ch | 007Dh | 007Eh | 007Fh |
(Not: Kimlik dışı büyük/küçük harf eşlemelerine sahip girişler kalın yazı tipindedir)
Bir birimi biçimlendirtikte, Unicode karakter alanının büyük bir bölümünün büyük/küçük harf kavramı olmadığından (yani "küçük harf" ve "büyük harf" karakterleri eşdeğerdir) uygulamalar kimlik eşleme sıkıştırması kullanarak sıkıştırılmış biçimde bir büyük/küçük harf tablosu oluşturabilir. Uygulamalar, FFFFh değerini ve ardından kimlik eşlemelerinin sayısını içeren bir dizi kimlik eşlemesini temsil ederek bir büyük/küçük harf tablosunu sıkıştırır.
Örneğin, bir uygulama sıkıştırılmış bir up-case tablosunun aşağıdaki sekiz girişiyle ilk 100 (64h) karakter eşlemelerini temsil edebilir:
FFFFh, 0061h, 0041h, 0042h, 0043h
İlk iki girdi, 0000h'den 0060h'ye kadar olan ilk 97 (61h) karakterin kimlik eşlemelerine sahip olduğunu gösterir. Sonraki karakterler, 0061h'den 0063h'ye kadar olan karakterler sırasıyla 0041h'den 0043h'ye kadar olan karakterlerle eşleştirilir.
Birimi biçimlendirerek sıkıştırılmış bir büyük/küçük harf tablosu sağlama özelliği isteğe bağlıdır. Ancak hem sıkıştırılmamış hem de sıkıştırılmış bir büyük/küçük harf tablosunu yorumlamak zorunludur. TableChecksum alanının değeri, disk üzerindeki büyük harf tablosunun biçimiyle her zaman uyumludur ve bu tablo sıkıştırılmış veya sıkıştırılmamış formatta olabilir.
7.2.5.1 Önerilen Büyük/Küçük Harf Tablosu
Bir birimi biçimlendirirken, uygulamalar önerilen büyük harf tablosunu kaydetmelidir (bkz. Tablo 25); bu tablo, sıkıştırılmış biçimde olmalı ve TableChecksum alanının değeri E619D30Dh'dir.
Bir uygulama sıkıştırılmış veya sıkıştırılmamış kendi büyük harf tablosunu tanımlarsa, bu tablo tam Unicode karakter aralığını (0000h karakter kodlarından FFFFh dahil) kapsamalıdır.
Tablo 25 Sıkıştırılmış biçimde önerilen büyük/küçük harf tablosu
Ham uzaklık | + 0 | + 1 | + 2 | + 3 | + 4 | + 5 | + 6 | + 7 |
---|---|---|---|---|---|---|---|---|
0000h | 00:00 | 0001h | 0002h | 0003h | 0004h | 0005h | 0006h | 0007h |
0008h | 0008h | 0009h | 000Ah | 000Bh | 000Ch | 000Dh | 000Eh | 000Fh |
0010h | 0010h | 0011h | 0012h | 0013h | 0014h | 0015h | 0016h | 0017h |
0018h | 0018h | 0019h | 001Ah | 001Bh | 001Ch | 001Dh | 001Eh | 001Fh |
0020h | 0020h | 0021h | 0022h | 0023h | 0024h | 0025h | 0026h | 0027h |
0028h | 0028h | 0029h | 002Ah | 002Bh | 002Ch | 002Dh | 002Eh | 002Fh |
0030h | 0030h | 0031h | 0032h | 0033h | 0034h | 0035h | 0036h | 0037h |
0038h | 0038h | 0039h | 003Ah | 003Bh | 003Ch | 003Dh | 003Eh | 003Fh |
0040h | 0040h | 0041h | 0042h | 0043h | 0044h | 0045h | 0046h | 0047h |
0048h | 0048h | 0049h | 004Ah | 004Bh | 004Ch | 004Dh | 004Eh | 004Fh |
0050h | 0050h | 0051h | 0052h | 0053h | 0054h | 0055h | 0056h | 0057h |
0058h | 0058h | 0059h | 005Ah | 005Bh | 005Ch | 005Dh | 005Eh | 005Fh |
0060h | 0060h | 0041h | 0042h | 0043h | 0044h | 0045h | 0046h | 0047h |
0068h | 0048h | 0049h | 004Ah | 004Bh | 004Ch | 004Dh | 004Eh | 004Fh |
0070h | 0050h | 0051h | 0052h | 0053h | 0054h | 0055h | 0056h | 0057h |
0078h | 0058h | 0059h | 005Ah | 007Bh | 007Ch | 007Dh | 007Eh | 007Fh |
0080h | 0080h | 0081h | 0082h | 0083 h | 0084h | 0085h | 0086h | 0087h |
0088h | 0088h | 0089h | 008Ah | 008Bh | 008Ch | 008Dh | 008Eh | 008Fh |
0090h | 0090h | 0091h | 0092h | 0093h | 0094h | 0095h | 0096h | 0097h |
0098h | 0098h | 0099h | 009Ah | 009Bh | 009Ch | 009Dh | 009Eh | 009Fh |
00A0h | 00A0h | 00A1h | 00A2h | 00A3h | 00A4h | 00A5h | 00A6h | 00A7h |
00A8h | 00A8h | 00A9h | 00AAh | 00ABh | 00ACh | 00ADh | 00AEh | 00AFh |
00B0h | 00B0h | 00B1h | 00B2h | 00B3h | 00B4h | 00B5h | 00B6h | 00B7h |
00B8h | 00B8h | 00B9h | 00BAh | 00BBh | 00BCh | 00BDh | 00BEh | 00BFh |
00C0h | 00C0h | 00C1h | 00C2h | 00C3h | 00C4h | 00C5h | 00C6h | 00C7h |
00C8h | 00C8h | 00C9h | 00CAh | 00CBh | 00CCh | 00CDh | 00CEh | 00CFh |
00D0h | 00D0h | 00D1h | 00D2h | 00D3h | 00D4h | 00D5h | 00D6h | 00D7h |
00D8h | 00D8h | 00D9h | 00DAh | 00DBh | 00DCh | 00DDh | 00DEh | 00DFh |
00E0h | 00C0h | 00C1h | 00C2h | 00C3h | 00C4h | 00C5h | 00C6h | 00C7h |
00E8h | 00C8h | 00C9h | 00CAh | 00CBh | 00CCh | 00CDh | 00CEh | 00CFh |
00F0h | 00D0h | 00D1h | 00D2h | 00D3h | 00D4h | 00D5h | 00D6h | 00F7h |
00F8h | 00D8h | 00D9h | 00DAh | 00DBh | 00DCh | 00DDh | 00DEh | 0178h |
0100h | 0100h | 0100h | 0102h | 0102h | 0104h | 0104h | 0106h | 0106h |
0108h | 0108h | 0108h | 010Ah | 010Ah | 010Ch | 010Ch | 010Eh | 010Eh |
0110h | 0110h | 0110h | 0112h | 0112h | 0114h | 0114h | 0116h | 0116h |
0118h | 0118h | 0118h | 011Ah | 011Ah | 011Ch | 011Ch | 011Eh | 011Eh |
0120h | 0120h | 0120h | 0122h | 0122h | 0124h | 0124h | 0126h | 0126h |
0128h | 0128h | 0128h | 012Ah | 012Ah | 012Ch | 012Ch | 012Eh | 012Eh |
0130h | 0130h | 0131h | 0132h | 0132h | 0134h | 0134h | 0136h | 0136h |
0138h | 0138h | 0139h | 0139h | 013Bh | 013Bh | 013Dh | 013Dh | 013Fh |
0140h | 013Fh | 0141h | 0141h | 0143h | 0143h | 0145h | 0145h | 0147h |
0148h | 0147h | 0149h | 014Ah | 014Ah | 014Ch | 014Ch | 014Eh | 014Eh |
0150h | 0150h | 0150h | 0152h | 0152h | 0154h | 0154h | 0156h | 0156h |
0158h | 0158h | 0158h | 015Ah | 015Ah | 015Ch | 015Ch | 015Eh | 015Eh |
0160h | 0160 saat | 0160 saat | 0162h | 0162h | 0164h | 0164h | 0166h | 0166h |
0168h | 0168h | 0168h | 016Ah | 016Ah | 016Ch | 016Ch | 016Eh | 016Eh |
0170h | 0170h | 0170h | 0172h | 0172h | 0174h | 0174h | 0176h | 0176h |
0178h | 0178h | 0179h | 0179h | 017Bh | 017Bh | 017Dh | 017Dh | 017Fh |
0180h | 0243h | 0181h | 0182h | 0182h | 0184h | 0184h | 0186h | 0187h |
0188h | 0187h | 0189h | 018Ah | 018Bh | 018Bh | 018Dh | 018Eh | 018Fh |
0190h | 0190h | 0191h | 0191h | 0193h | 0194h | 01F6h | 0196h | 0197h |
0198h | 0198h | 0198h | 023Dh | 019Bh | 019Ch | 019Dh | 0220h | 019Fh |
01A0h | 01A0h | 01A0h | 01A2h | 01A2h | 01A4h | 01A4h | 01A6h | 01A7h |
01A8h | 01A7h | 01A9h | 01AAh | 01ABh | 01ACh | 01ACh | 01AEh | 01AFh |
01B0h | 01AFh | 01B1h | 01B2h | 01B3h | 01B3h | 01B5h | 01B5h | 01B7h |
01B8h | 01B8h | 01B8h | 01BAh | 01BBh | 01BCh | 01BCh | 01BEh | 01F7h |
01C0h | 01C0h | 01C1h | 01C2h | 01C3h | 01C4h | 01C5h | 01C4h | 01C7h |
01C8h | 01C8h | 01C7h | 01CAh | 01CBh | 01CAh | 01CDh | 01CDh | 01CFh |
01D0h | 01CFh | 01D1h | 01D1h | 01D3h | 01D3h | 01D5h | 01D5h | 01D7h |
01D8h | 01D7h | 01D9h | 01D9h | 01DBh | 01DBh | 018Eh | 01DEh | 01DEh |
01E0h | 01E0h | 01E0h | 01E2h | 01E2h | 01E4h | 01E4h | 01E6h | 01E6h |
01E8h | 01E8h | 01E8h | 01EAh | 01EAh | 01ECh | 01ECh | 01EEh | 01EEh |
01F0h | 01F0h | 01F1h | 01F2h | 01F1h | 01F4h | 01F4h | 01F6h | 01F7h |
01F8h | 01F8h | 01F8h | 01FAh | 01FAh | 01FCh | 01FCh | 01FEh | 01FEh |
0200h | 0200h | 0200h | 0202h | 0202h | 0204h | 0204h | 0206h | 0206h |
0208h | 0208h | 0208h | 020Ah | 020Ah | 020Ch | 020Ch | 020Eh | 020Eh |
0210h | 0210h | 0210h | 0212h | 0212h | 0214h | 0214h | 0216h | 0216h |
0218h | 0218h | 0218h | 021Ah | 021Ah | 021Ch | 021Ch | 021Eh | 021Eh |
0220h | 0220h | 0221h | 0222h | 0222h | 0224h | 0224h | 0226h | 0226h |
0228h | 0228h | 0228h | 022Ah | 022Ah | 022Ch | 022Ch | 022Eh | 022Eh |
0230h | 0230h | 0230h | 0232h | 0232h | 0234h | 0235h | 0236h | 0237h |
0238h | 0238h | 0239h | 2C65h | 023Bh | 023Bh | 023Dh | 2C66h | 023Fh |
0240h | 0240h | 0241h | 0241h | 0243h | 0244h | 0245h | 0246h | 0246h |
0248h | 0248h | 0248h | 024Ah | 024Ah | 024Ch | 024Ch | 024Eh | 024Eh |
0250h | 0250h | 0251h | 0252h | 0181h | 0186h | 0255h | 0189h | 018Ah |
0258h | 0258h | 018Fh | 025Ah | 0190h | 025Ch | 025Dh | 025Eh | 025Fh |
0260h | 0193h | 0261h | 0262h | 0194h | 0264h | 0265h | 0266h | 0267h |
0268h | 0197h | 0196h | 026Ah | 2C62h | 026Ch | 026Dh | 026Eh | 019Ch |
0270h | 0270h | 0271h | 019Dh | 0273h | 0274h | 019Fh | 0276h | 0277h |
0278h | 0278h | 0279h | 027Ah | 027Bh | 027Ch | 2C64h | 027Eh | 027Fh |
0280h | 01A6h | 0281h | 0282h | 01A9h | 0284h | 0285h | 0286h | 0287h |
0288h | 01AEh | 0244h | 01B1h | 01B2h | 0245h | 028Dh | 028Eh | 028Fh |
0290h | 0290h | 0291h | 01B7h | 0293h | 0294h | 0295h | 0296h | 0297h |
0298h | 0298h | 0299h | 029Ah | 029Bh | 029Ch | 029Dh | 029Eh | 029Fh |
02A0h | 02A0h | 02A1h | 02A2h | 02A3h | 02A4h | 02A5h | 02A6h | 02A7h |
02A8h | 02A8h | 02A9h | 02AAh | 02ABh | 02ACh | 02ADh | 02AEh | 02AFh |
02B0h | 02B0h | 02B1h | 02B2h | 02B3h | 02B4h | 02B5h | 02B6h | 02B7h |
02B8h | 02B8h | 02B9h | 02BAh | 02BBh | 02BCh | 02BDh | 02BEh | 02BFh |
02C0h | 02C0h | 02C1h | 02C2h | 02C3h | 02C4h | 02C5h | 02C6h | 02C7h |
02C8h | 02C8h | 02C9h | 02CAh | 02CBh | 02CCh | 02CDh | 02CEh | 02CFh |
02D0h | 02D0h | 02D1h | 02D2h | 02D3h | 02D4h | 02D5h | 02D6h | 02D7h |
02D8h | 02D8h | 02D9h | 02DAh | 02DBh | 02DCh | 02DDh | 02DEh | 02DFh |
02E0h | 02E0h | 02E1h | 02E2h | 02E3h | 02E4h | 02E5h | 02E6h | 02E7h |
02E8h | 02E8h | 02E9h | 02EAh | 02EBh | 02ECh | 02EDh | 02EEh | 02EFh |
02F0h | 02F0h | 02F1h | 02F2h | 02F3h | 02F4h | 02F5h | 02F6h | 02F7h |
02F8h | 02F8h | 02F9h | 02FAh | 02FBh | 02FCh | 02FDh | 02FEh | 02FFh |
0300h | 03:00 | 0301h | 0302h | 0303h | 0304h | 0305h | 0306h | 0307h |
0308h | 0308h | 0309h | 030Ah | 030Bh | 030Ch | 030Dh | 030Eh | 030Fh |
0310h | 0310h | 0311h | 0312h | 0313h | 0314h | 0315h | 03:16h | 0317h |
0318h | 0318h | 0319h | 031Ah | 031Bh | 031Ch | 031Dh | 031Eh | 031Fh |
0320h | 0320h | 0321h | 0322h | 0323h | 0324h | 0325h | 0326h | 0327h |
0328h | 0328h | 0329h | 032Ah | 032Bh | 032Ch | 032Dh | 032Eh | 032Fh |
0330h | 0330h | 0331h | 0332h | 0333h | 0334h | 0335h | 0336h | 0337h |
0338h | 0338h | 0339h | 033Ah | 033Bh | 033Ch | 033Dh | 033Eh | 033Fh |
0340h | 0340h | 0341h | 0342h | 0343h | 0344h | 0345h | 0346h | 0347h |
0348h | 0348h | 0349h | 034Ah | 034Bh | 034Ch | 034Dh | 034Eh | 034Fh |
0350h | 0350h | 0351h | 0352h | 0353h | 0354h | 0355h | 0356h | 0357h |
0358h | 0358h | 0359h | 035Ah | 035Bh | 035Ch | 035Dh | 035Eh | 035Fh |
0360h | 0360h | 0361h | 0362h | 0363h | 0364h | 0365h | 0366h | 0367h |
0368h | 0368h | 0369h | 036Ah | 036Bh | 036Ch | 036Dh | 036Eh | 036Fh |
0370h | 0370h | 0371h | 0372h | 0373h | 0374h | 0375 saat | 0376h | 0377h |
0378h | 0378h | 0379h | 037Ah | 03FDh | 03FEh | 03FFh | 037Eh | 037Fh |
0380h | 0380h | 0381h | 0382h | 0383h | 0384h | 0385h | 0386h | 0387h |
0388h | 0388h | 0389h | 038Ah | 038Bh | 038Ch | 038Dh | 038Eh | 038Fh |
0390h | 0390h | 0391h | 0392h | 0393h | 0394h | 0395h | 0396h | 0397h |
0398h | 0398h | 0399h | 039Ah | 039Bh | 039Ch | 039Dh | 039Eh | 039Fh |
03A0h | 03A0h | 03A1h | 03A2h | 03A3h | 03A4h | 03A5h | 03A6h | 03A7h |
03A8h | 03A8h | 03A9h | 03AAh | 03ABh | 0386h | 0388h | 0389h | 038Ah |
03B0h | 03B0h | 0391h | 0392h | 0393h | 0394h | 0395h | 0396h | 0397h |
03B8h | 0398h | 0399h | 039Ah | 039Bh | 039Ch | 039Dh | 039Eh | 039Fh |
03C0h | 03A0h | 03A1h | 03A3h | 03A3h | 03A4h | 03A5h | 03A6h | 03A7h |
03C8h | 03A8h | 03A9h | 03AAh | 03ABh | 038Ch | 038Eh | 038Fh | 03CFh |
03D0h | 03D0h | 03D1h | 03D2h | 03D3h | 03D4h | 03D5h | 03D6h | 03D7h |
03D8h | 03D8h | 03D8h | 03DAh | 03DAh | 03DCh | 03DCh | 03DEh | 03DEh |
03E0h | 03E0h | 03E0h | 03E2h | 03E2h | 03E4h | 03E4h | 03E6h | 03E6h |
03E8h | 03E8h | 03E8h | 03EAh | 03EAh | 03ECh | 03ECh | 03EEh | 03EEh |
03F0h | 03F0h | 03F1h | 03F9h | 03F3h | 03F4h | 03F5h | 03F6h | 03F7h |
03F8h | 03F7h | 03F9h | 03FAh | 03FAh | 03FCh | 03FDh | 03FEh | 03FFh |
0400h | 0400h | 0401h | 0402h | 0403h | 0404h | 0405h | 0406h | 0407h |
0408h | 0408h | 0409h | 040Ah | 040Bh | 040Ch | 040Dh | 040Eh | 040Fh |
0410h | 0410h | 0411h | 0412h | 0413h | 0414h | 0415h | 0416h | 0417h |
0418h | 0418h | 0419h | 041Ah | 041Bh | 041Ch | 041Dh | 041Eh | 041Fh |
0420h | 0420h | 0421h | 0422h | 0423h | 0424h | 0425h | 0426h | 0427h |
0428h | 0428h | 0429h | 042Ah | 042Bh | 042Ch | 042Dh | 042Eh | 042Fh |
0430h | 0410h | 0411h | 0412h | 0413h | 0414h | 0415h | 0416h | 0417h |
0438h | 0418h | 0419h | 041Ah | 041Bh | 041Ch | 041Dh | 041Eh | 041Fh |
0440h | 0420h | 0421h | 0422h | 0423h | 0424h | 0425h | 0426h | 0427h |
0448h | 0428h | 0429h | 042Ah | 042Bh | 042Ch | 042Dh | 042Eh | 042Fh |
0450h | 0400h | 0401h | 0402h | 0403h | 0404h | 0405h | 0406h | 0407h |
0458h | 0408h | 0409h | 040Ah | 040Bh | 040Ch | 040Dh | 040Eh | 040Fh |
0460h | 0460h | 0460h | 0462h | 0462h | 0464h | 0464h | 0466h | 0466h |
0468h | 0468h | 0468h | 046Ah | 046Ah | 046Ch | 046Ch | 046Eh | 046Eh |
0470h | 0470h | 0470h | 0472h | 0472h | 0474h | 0474h | 0476h | 0476h |
0478h | 0478h | 0478h | 047Ah | 047Ah | 047Ch | 047Ch | 047Eh | 047Eh |
0480h | 0480h | 0480h | 0482h | 0483h | 0484h | 0485h | 0486h | 0487h |
0488h | 0488h | 0489h | 048Ah | 048Ah | 048Ch | 048Ch | 048Eh | 048Eh |
0490h | 0490h | 0490h | 0492h | 0492h | 0494h | 0494h | 0496h | 0496h |
0498h | 0498h | 0498h | 049Ah | 049Ah | 049Ch | 049Ch | 049Eh | 049Eh |
04A0h | 04A0h | 04A0h | 04A2h | 04A2h | 04A4h | 04A4h | 04A6h | 04A6h |
04A8h | 04A8h | 04A8h | 04AAh | 04AAh | 04ACh | 04ACh | 04AEh | 04AEh |
04B0h | 04B0h | 04B0h | 04B2h | 04B2h | 04B4h | 04B4h | 04B6h | 04B6h |
04B8h | 04B8h | 04B8h | 04BAh | 04BAh | 04BCh | 04BCh | 04BEh | 04BEh |
04C0h | 04C0h | 04C1h | 04C1h | 04C3h | 04C3h | 04C5h | 04C5h | 04C7h |
04C8h | 04C7h | 04C9h | 04C9h | 04CBh | 04CBh | 04CDh | 04CDh | 04C0h |
04D0h | 04D0h | 04D0h | 04D2h | 04D2h | 04D4h | 04D4h | 04D6h | 04D6h |
04D8h | 04D8h | 04D8h | 04DAh | 04DAh | 04DCh | 04DCh | 04DEh | 04DEh |
04E0h | 04E0h | 04E0h | 04E2h | 04E2h | 04E4h | 04E4h | 04E6h | 04E6h |
04E8h | 04E8h | 04E8h | 04EAh | 04EAh | 04ECh | 04ECh | 04EEh | 04EEh |
04F0h | 04F0h | 04F0h | 04F2h | 04F2h | 04F4h | 04F4h | 04F6h | 04F6h |
04F8h | 04F8h | 04F8h | 04FAh | 04FAh | 04FCh | 04FCh | 04FEh | 04FEh |
0500h | 05:00 | 05:00 | 0502h | 0502h | 0504h | 0504h | 0506h | 0506h |
0508h | 0508h | 0508h | 050Ah | 050Ah | 050Ch | 050Ch | 050Eh | 050Eh |
0510h | 0510h | 0510h | 05:12 h | 05:12 h | 05:14 | 0515h | 0516h | 0517h |
0518h | 0518h | 0519h | 051Ah | 051Bh | 051Ch | 051Dh | 051Eh | 051Fh |
0520h | 0520h | 0521h | 0522h | 0523h | 0524h | 0525h | 0526h | 0527h |
0528h | 0528h | 0529h | 052Ah | 052Bh | 052Ch | 052Dh | 052Eh | 052Fh |
0530h | 0530h | 0531h | 0532h | 0533h | 0534h | 0535h | 0536h | 0537h |
0538h | 0538h | 0539h | 053Ah | 053Bh | 053Ch | 053Dh | 053Eh | 053Fh |
0540h | 0540h | 0541h | 0542h | 0543h | 0544h | 0545h | 0546h | 0547h |
0548h | 0548h | 0549h | 054Ah | 054Bh | 054Ch | 054Dh | 054Eh | 054Fh |
0550h | 0550h | 0551h | 0552h | 0553h | 0554h | 0555h | 0556h | 0557h |
0558h | 0558h | 0559h | 055Ah | 055Bh | 055Ch | 055Dh | 055Eh | 055Fh |
0560h | 0560h | 0531h | 0532h | 0533h | 0534h | 0535h | 0536h | 0537h |
0568h | 0538h | 0539h | 053Ah | 053Bh | 053Ch | 053Dh | 053Eh | 053Fh |
0570h | 0540h | 0541h | 0542h | 0543h | 0544h | 0545h | 0546h | 0547h |
0578h | 0548h | 0549h | 054Ah | 054Bh | 054Ch | 054Dh | 054Eh | 054Fh |
0580h | 0550h | 0551h | 0552h | 0553h | 0554h | 0555h | 0556h | FFFFh |
0588h | 17F6h | 2C63h | 1D7Eh | 1D7Fh | 1D80h | 1D81h | 1D82h | 1D83h |
0590h | 1D84h | 1D85h | 1D86h | 1D87h | 1D88h | 1D89h | 1D8Ah | 1D8Bh |
0598h | 1D8Ch | 1D8Dh | 1D8Eh | 1D8Fh | 1D90h | 1D91h | 1D92h | 1D93h |
05A0h | 1D94h | 1D95h | 1D96h | 1D97h | 1D98h | 1D99h | 1D9Ah | 1D9Bh |
05A8h | 1D9Ch | 1D9Dh | 1D9Eh | 1D9Fh | 1DA0h | 1DA1h | 1DA2h | 1DA3h |
05B0h | 1DA4h | 1DA5h | 1DA6h | 1DA7h | 1DA8h | 1DA9h | 1DAAh | 1DABh |
05B8h | 1DACh | 1DADh | 1DAEh | 1DAFh | 1DB0h | 1DB1h | 1DB2h | 1DB3h |
05C0h | 1DB4h | 1DB5h | 1DB6h | 1DB7h | 1DB8h | 1DB9h | 1DBAh | 1DBBh |
05C8h | 1DBCh | 1DBDh | 1DBEh | 1DBFh | 1DC0h | 1DC1h | 1DC2h | 1DC3h |
05D0h | 1DC4h | 1DC5h | 1DC6h | 1DC7h | 1DC8h | 1DC9h | 1DCAh | 1DCBh |
05D8h | 1DCCh | 1DCDh | 1DCEh | 1DCFh | 1DD0h | 1DD1h | 1DD2h | 1DD3h |
05E0h | 1DD4h | 1DD5h | 1DD6h | 1DD7h | 1DD8h | 1DD9h | 1DDAh | 1DDBh |
05E8h | 1DDCh | 1DDDh | 1DDEh | 1DDFh | 1DE0h | 1DE1h | 1DE2h | 1DE3h |
05F0h | 1DE4h | 1DE5h | 1DE6h | 1DE7h | 1DE8h | 1DE9h | 1DEAh | 1DEBh |
05F8h | 1DECh | 1DEDh | 1DEEh | 1DEFh | 1DF0h | 1DF1h | 1DF2h | 1DF3h |
0600h | 1DF4h | 1DF5h | 1DF6h | 1DF7h | 1DF8h | 1DF9h | 1DFAh | 1DFBh |
0608h | 1DFCh | 1DFDh | 1DFEh | 1DFFh | 1E00h | 1E00h | 1E02h | 1E02h |
0610h | 1E04h | 1E04h | 1E06h | 1E06h | 1E08h | 1E08h | 1E0Ah | 1E0Ah |
0618h | 1E0Ch | 1E0Ch | 1E0Eh | 1E0Eh | 1E10h | 1E10h | 1E12h | 1E12h |
0620h | 1E14h | 1E14h | 1E16h | 1E16h | 1E18h | 1E18h | 1E1Ah | 1E1Ah |
0628h | 1E1Ch | 1E1Ch | 1E1Eh | 1E1Eh | 1E20h | 1E20h | 1E22h | 1E22h |
0630h | 1E24h | 1E24h | 1E26h | 1E26h | 1E28h | 1E28h | 1E2Ah | 1E2Ah |
0638h | 1E2Ch | 1E2Ch | 1E2Eh | 1E2Eh | 1E30h | 1E30h | 1E32h | 1E32h |
0640h | 1E34h | 1E34h | 1E36h | 1E36h | 1E38h | 1E38h | 1E3Ah | 1E3Ah |
0648h | 1E3Ch | 1E3Ch | 1E3Eh | 1E3Eh | 1E40h | 1E40h | 1E42h | 1E42h |
0650h | 1E44h | 1E44h | 1E46h | 1E46h | 1E48h | 1E48h | 1E4Ah | 1E4Ah |
0658h | 1E4Ch | 1E4Ch | 1E4Eh | 1E4Eh | 1E50h | 1E50h | 1E52h | 1E52h |
0660h | 1E54h | 1E54h | 1E56h | 1E56h | 1E58h | 1E58h | 1E5Ah | 1E5Ah |
0668h | 1E5Ch | 1E5Ch | 1E5Eh | 1E5Eh | 1E60h | 1E60h | 1E62h | 1E62h |
0670h | 1E64h | 1E64h | 1E66h | 1E66h | 1E68h | 1E68h | 1E6Ah | 1E6Ah |
0678h | 1E6Ch | 1E6Ch | 1E6Eh | 1E6Eh | 1E70h | 1E70h | 1E72h | 1E72h |
0680h | 1E74h | 1E74h | 1E76h | 1E76h | 1E78h | 1E78h | 1E7Ah | 1E7Ah |
0688h | 1E7Ch | 1E7Ch | 1E7Eh | 1E7Eh | 1E80h | 1E80h | 1E82h | 1E82h |
0690h | 1E84h | 1E84h | 1E86h | 1E86h | 1E88h | 1E88h | 1E8Ah | 1E8Ah |
0698h | 1E8Ch | 1E8Ch | 1E8Eh | 1E8Eh | 1E90h | 1E90h | 1E92h | 1E92h |
06A0h | 1E94h | 1E94h | 1E96h | 1E97h | 1E98h | 1E99h | 1E9Ah | 1E9Bh |
06A8h | 1E9Ch | 1E9Dh | 1E9Eh | 1E9Fh | 1EA0h | 1EA0h | 1EA2h | 1EA2h |
06B0h | 1EA4h | 1EA4h | 1EA6h | 1EA6h | 1EA8h | 1EA8h | 1EAAh | 1EAAh |
06B8h | 1EACh | 1EACh | 1EAEh | 1EAEh | 1EB0h | 1EB0h | 1EB2h | 1EB2h |
06C0h | 1EB4h | 1EB4h | 1EB6h | 1EB6h | 1EB8h | 1EB8h | 1EBAh | 1EBAh |
06C8h | 1EBCh | 1EBCh | 1EBEh | 1EBEh | 1EC0h | 1EC0h | 1EC2h | 1EC2h |
06D0h | 1EC4h | 1EC4h | 1EC6h | 1EC6h | 1EC8h | 1EC8h | 1ECAh | 1ECAh |
06D8h | 1ECCh | 1ECCh | 1ECEh | 1ECEh | 1ED0h | 1ED0h | 1ED2h | 1ED2h |
06E0h | 1ED4h | 1ED4h | 1ED6h | 1ED6h | 1ED8h | 1ED8h | 1EDAh | 1EDAh |
06E8h | 1EDCh | 1EDCh | 1EDEh | 1EDEh | 1EE0h | 1EE0h | 1EE2h | 1EE2h |
06F0h | 1EE4h | 1EE4h | 1EE6h | 1EE6h | 1EE8h | 1EE8h | 1EEAh | 1EEAh |
06F8h | 1EECh | 1EECh | 1EEEh | 1EEEh | 1EF0h | 1EF0h | 1EF2h | 1EF2h |
0700h | 1EF4h | 1EF4h | 1EF6h | 1EF6h | 1EF8h | 1EF8h | 1EFAh | 1EFBh |
0708h | 1EFCh | 1EFDh | 1EFEh | 1EFFh | 1F08h | 1F09h | 1F0Ah | 1F0Bh |
0710h | 1F0Ch | 1F0Dh | 1F0Eh | 1F0Fh | 1F08h | 1F09h | 1F0Ah | 1F0Bh |
0718h | 1F0Ch | 1F0Dh | 1F0Eh | 1F0Fh | 1F18h | 1F19h | 1F1Ah | 1F1Bh |
0720h | 1F1Ch | 1F1Dh | 1F16h | 1F17h | 1F18h | 1F19h | 1F1Ah | 1F1Bh |
0728h | 1F1Ch | 1F1Dh | 1F1Eh | 1F1Fh | 1F28h | 1F29h | 1F2Ah | 1F2Bh |
0730h | 1F2Ch | 1F2Dh | 1F2Eh | 1F2Fh | 1F28h | 1F29h | 1F2Ah | 1F2Bh |
0738h | 1F2Ch | 1F2Dh | 1F2Eh | 1F2Fh | 1F38h | 1F39h | 1F3Ah | 1F3Bh |
0740h | 1F3Ch | 1F3Dh | 1F3Eh | 1F3Fh | 1F38h | 1F39h | 1F3Ah | 1F3Bh |
0748h | 1F3Ch | 1F3Dh | 1F3Eh | 1F3Fh | 1F48h | 1F49h | 1F4Ah | 1F4Bh |
0750h | 1F4Ch | 1F4Dh | 1F46h | 1F47h | 1F48h | 1F49h | 1F4Ah | 1F4Bh |
0758h | 1F4Ch | 1F4Dh | 1F4Eh | 1F4Fh | 1F50h | 1F59h | 1F52h | 1F5Bh |
0760h | 1F54h | 1F5Dh | 1F56h | 1F5Fh | 1F58h | 1F59h | 1F5Ah | 1F5Bh |
0768h | 1F5Ch | 1F5Dh | 1F5Eh | 1F5Fh | 1F68h | 1F69h | 1F6Ah | 1F6Bh |
0770h | 1F6Ch | 1F6Dh | 1F6Eh | 1F6Fh | 1F68h | 1F69h | 1F6Ah | 1F6Bh |
0778h | 1F6Ch | 1F6Dh | 1F6Eh | 1F6Fh | 1FBAh | 1FBBh | 1FC8h | 1FC9h |
0780h | 1FCAh | 1FCBh | 1FDAh | 1FDBh | 1FF8h | 1FF9h | 1FEAh | 1FEBh |
0788h | 1FFAh | 1FFBh | 1F7Eh | 1F7Fh | 1F88h | 1F89h | 1F8Ah | 1F8Bh |
0790h | 1F8Ch | 1F8Dh | 1F8Eh | 1F8Fh | 1F88h | 1F89h | 1F8Ah | 1F8Bh |
0798h | 1F8Ch | 1F8Dh | 1F8Eh | 1F8Fh | 1F98h | 1F99h | 1F9Ah | 1F9Bh |
07A0h | 1F9Ch | 1F9Dh | 1F9Eh | 1F9Fh | 1F98h | 1F99h | 1F9Ah | 1F9Bh |
07A8h | 1F9Ch | 1F9Dh | 1F9Eh | 1F9Fh | 1FA8h | 1FA9h | 1FAAh | 1FABh |
07B0h | 1FACh | 1FADh | 1FAEh | 1FAFh | 1FA8h | 1FA9h | 1FAAh | 1FABh |
07B8h | 1FACh | 1FADh | 1FAEh | 1FAFh | 1FB8h | 1FB9h | 1FB2h | 1FBCh |
07C0h | 1FB4h | 1FB5h | 1FB6h | 1FB7h | 1FB8h | 1FB9h | 1FBAh | 1FBBh |
07C8h | 1FBCh | 1FBDh | 1FBEh | 1FBFh | 1FC0h | 1FC1h | 1FC2h | 1FC3h |
07D0h | 1FC4h | 1FC5h | 1FC6h | 1FC7h | 1FC8h | 1FC9h | 1FCAh | 1FCBh |
07D8h | 1FC3h | 1FCDh | 1FCEh | 1FCFh | 1FD8h | 1FD9h | 1FD2h | 1FD3h |
07E0h | 1FD4h | 1FD5h | 1FD6h | 1FD7h | 1FD8h | 1FD9h | 1FDAh | 1FDBh |
07E8h | 1FDCh | 1FDDh | 1FDEh | 1FDFh | 1FE8h | 1FE9h | 1FE2h | 1FE3h |
07F0h | 1FE4h | 1FECh | 1FE6h | 1FE7h | 1FE8h | 1FE9h | 1FEAh | 1FEBh |
07F8h | 1FECh | 1FEDh | 1FEEh | 1FEFh | 1FF0h | 1FF1h | 1FF2h | 1FF3h |
0800h | 1FF4h | 1FF5h | 1FF6h | 1FF7h | 1FF8h | 1FF9h | 1FFAh | 1FFBh |
0808h | 1FF3h | 1FFDh | 1FFEh | 1FFFh | 2000h | 2001 saat | 2002h | 2003h |
0810h | 2004h | 2005h | 2006h | 2007h | 2008h | 2009h | 200Ah | 200Bh |
0818h | 200Ch | 200 Fas Dirhemi | 200Eh | 200Fh | 2010 saat | 2011h | 2012h | 2013h |
0820h | 2014h | 2015h | 2016h | 2017h | 2018h | 2019h | 201Ah | 201Bh |
0828h | 201Ch | 201Dh | 201Eh | 201Fh | 2020h | 2021h | 2022h | 2023 saat |
0830h | 2024 saat | 2025h | 2026h | 2027h | 2028h | 2029 saat | 202Ah | 202Bh |
0838h | 202Ch | 202Dh | 202Eh | 202Fh | 20:30 | 2031h | 2032h | 2033h |
0840h | 2034 saat | 2035h | 2036h | 2037h | 20:38 | 2039h | 203Ah | 203Bh |
0848h | 203Ch | 203Dh | 203Eh | 203Fh | 2040h | 2041h | 2042h | 2043h |
0850h | 20:44 | 2045h | 2046h | 20:47 | 2048h | 2049h | 204Ah | 204Bh |
0858h | 204Ch | 204Dh | 204Eh | 204Fh | 2050h | 2051h | 20:52 | 2053h |
0860h | 2054h | 2055h | 2056h | 2057h | 2058h | 2059h | 205Ah | 205Bh |
0868h | 205Ch | 205Dh | 205Eh | 205Fh | 2060h | 2061h | 2062 saat | 2063h |
0870h | 2064h | 2065h | 2066h | 2067h | 2068h | 2069h | 206Ah | 206Bh |
0878h | 206Ch | 206Dh | 206Eh | 206Fh | 2070h | 2071h | 2072h | 2073h |
0880h | 2074h | 2075h | 2076 saat | 2077h | 2078h | 2079h | 207Ah | 207Bh |
0888h | 207Ch | 207Dh | 207Eh | 207Fh | 2080h | 2081h | 2082h | 2083h |
0890h | 2084h | 2085h | 2086h | 2087h | 2088h | 2089h | 208Ah | 208Bh |
0898h | 208Ch | 208Dh | 208Eh | 208Fh | 2090h | 2091h | 2092h | 2093h |
08A0h | 2094h | 2095h | 2096h | 2097h | 2098h | 2099h | 209Ah | 209Bh |
08A8h | 209Ch | 209Dh | 209Eh | 209Fh | 20A0h | 20A1h | 20A2h | 20A3h |
08B0h | 20A4h | 20A5h | 20A6h | 20A7h | 20A8h | 20A9h | 20AAh | 20ABh |
08B8h | 20ACh | 20ADh | 20AEh | 20AFh | 20B0h | 20B1h | 20B2h | 20B3h |
08C0h | 20B4h | 20B5h | 20B6h | 20B7h | 20B8h | 20B9h | 20BAh | 20BH |
08C8h | 20BCh | 20BDh | 20BEh | 20BFh | 20C0h | 20C1h | 20C2h | 20C3h |
08D0h | 20C4h | 20C5h | 20C6h | 20C7h | 20C8h | 20C9h | 20CAh | 20CBh |
08D8h | 20CCh | 20CDh | 20CEh | 20CFh | 20D0h | 20D1h | 20D2h | 20D3h |
08E0h | 20D4h | 20D5h | 20D6h | 20D7h | 20D8h | 20D9h | 20DAh | 20Bh |
08E8h | 20DCh | 20DDh | 20DEh | 20DFh | 20E0h | 20E1h | 20E2h | 20E3h |
08F0h | 20E4h | 20E5h | 20E6h | 20E7h | 20E8h | 20E9h | 20EAh | 20EBh |
08F8h | 20ECh | 20EDh | 20EEh | 20EFh | 20F0h | 20F1h | 20F2h | 20F3h |
0900h | 20F4h | 20F5h | 20F6h | 20F7h | 20F8h | 20F9h | 20FAh | 20FBh |
0908h | 20FCh | 20FDh | 20FEh | 20FFh | 21:00 | 2101h | 2102h | 2103h |
0910h | 2104h | 2105h | 21:06 | 2107h | 2108h | 2109h | 210Ah | 210Bh |
0918h | 210Ch | 210Dh | 210Eh | 210Fh | 2110h | 21:11 | 2112h | 2113h |
0920h | 21:14 | 21:15 | 2116h | 21:17 | 2118h | 21:19 | 211Ah | 211Bh |
0928h | 211Ch | 211Dh | 211Eh | 211Fh | 2120h | 2121h | 21:22 | 2123h |
0930h | 2124h | 2125h | 2126h | 2127h | 2128h | 2129h | 212Ah | 212Bh |
0938h | 212Ch | 212Dh | 212Eh | 212Fh | 2130h | 2131h | 2132h | 2133h |
0940h | 2134h | 2135h | 2136h | 2137h | 2138h | 2139h | 213Ah | 213Bh |
0948h | 213Ch | 213Dh | 213Eh | 213Fh | 2140h | 2141h | 2142h | 2143h |
0950h | 2144h | 2145h | 2146h | 2147h | 2148h | 2149h | 214Ah | 214Bh |
0958h | 214Ch | 214Dh | 2132h | 214Fh | 2150h | 2151h | 2152h | 2153h |
0960h | 2154h | 2155h | 2156h | 2157h | 2158h | 2159h | 215Ah | 215Bh |
0968h | 215Ch | 215Dh | 215Eh | 215Fh | 2160h | 2161h | 2162h | 2163h |
0970h | 2164h | 2165h | 2166h | 2167h | 2168h | 2169h | 216Ah | 216Bh |
0978h | 216Ch | 216Dh | 216Eh | 216Fh | 2160 saat | 2161h | 2162h | 2163h |
0980h | 2164h | 2165h | 2166h | 2167h | 2168h | 2169h | 216Ah | 216Bh |
0988h | 216Ch | 216Dh | 216Eh | 216Fh | 2180h | 2181h | 2182h | 2183h |
0990h | 2183h | FFFFh | 034Bh | 24B6h | 24B7h | 24B8h | 24B9h | 24BAh |
0998h | 24BBh | 24BCh | 24BDh | 24BEh | 24BFh | 24C0h | 24C1h | 24C2h |
09A0h | 24C3h | 24C4h | 24C5h | 24C6h | 24C7h | 24C8h | 24C9h | 24CAh |
09A8h | 24CBh | 24CCh | 24CDh | 24CEh | 24CFh | FFFFh | 0746h | 2C00h |
09B0h | 2C01h | 2C02h | 2C03h | 2C04h | 2C05h | 2C06h | 2C07h | 2C08h |
09B8h | 2C09h | 2C0Ah | 2C0Bh | 2C0Ch | 2C0Dh | 2C0Eh | 2C0Fh | 2C10h |
09C0h | 2C11h | 2C12h | 2C13h | 2C14h | 2C15h | 2C16h | 2C17h | 2C18h |
09C8h | 2C19h | 2C1Ah | 2C1Bh | 2C1Ch | 2C1Dh | 2C1Eh | 2C1Fh | 2C20h |
09D0h | 2C21h | 2C22h | 2C23h | 2C24h | 2C25h | 2C26h | 2C27h | 2C28h |
09D8h | 2C29h | 2C2Ah | 2C2Bh | 2C2Ch | 2C2Dh | 2C2Eh | 2C5Fh | 2C60h |
09E0h | 2C60h | 2C62h | 2C63h | 2C64h | 2C65h | 2C66h | 2C67h | 2C67h |
09E8h | 2C69h | 2C69h | 2C6Bh | 2C6Bh | 2C6Dh | 2C6Eh | 2C6Fh | 2C70h |
09F0h | 2C71h | 2C72h | 2C73h | 2C74h | 2C75h | 2C75h | 2C77h | 2C78h |
09F8h | 2C79h | 2C7Ah | 2C7Bh | 2C7Ch | 2C7Dh | 2C7Eh | 2C7Fh | 2C80h |
0A00h | 2C80h | 2C82h | 2C82h | 2C84h | 2C84h | 2C86h | 2C86h | 2C88h |
0A08h | 2C88h | 2C8Ah | 2C8Ah | 2C8Ch | 2C8Ch | 2C8Eh | 2C8Eh | 2C90h |
0A10h | 2C90h | 2C92h | 2C92h | 2C94h | 2C94h | 2C96h | 2C96h | 2C98h |
0A18h | 2C98h | 2C9Ah | 2C9Ah | 2C9Ch | 2C9Ch | 2C9Eh | 2C9Eh | 2CA0h |
0A20h | 2CA0h | 2CA2h | 2CA2h | 2CA4h | 2CA4h | 2CA6h | 2CA6h | 2CA8h |
0A28h | 2CA8h | 2CAAh | 2CAAh | 2CACh | 2CACh | 2CAEh | 2CAEh | 2CB0h |
0A30h | 2CB0h | 2CB2h | 2CB2h | 2CB4h | 2CB4h | 2CB6h | 2CB6h | 2CB8h |
0A38h | 2CB8h | 2CBAh | 2CBAh | 2CBCh | 2CBCh | 2CBEh | 2CBEh | 2CC0h |
0A40h | 2CC0h | 2CC2h | 2CC2h | 2CC4h | 2CC4h | 2CC6h | 2CC6h | 2CC8h |
0A48h | 2CC8h | 2CCAh | 2CCAh | 2CCCh | 2CCCh | 2CCEh | 2CCEh | 2CD0h |
0A50h | 2CD0h | 2CD2h | 2CD2h | 2CD4h | 2CD4h | 2CD6h | 2CD6h | 2CD8h |
0A58h | 2CD8h | 2CDAh | 2CDAh | 2CDCh | 2CDCh | 2CDEh | 2CDEh | 2CE0h |
0A60h | 2CE0h | 2CE2h | 2CE2h | 2CE4h | 2CE5h | 2CE6h | 2CE7h | 2CE8h |
0A68h | 2CE9h | 2CEAh | 2CEBh | 2CECh | 2CEDh | 2CEEh | 2CEFh | 2CF0h |
0A70h | 2CF1h | 2CF2h | 2CF3h | 2CF4h | 2CF5h | 2CF6h | 2CF7h | 2CF8h |
0A78h | 2CF9h | 2CFAh | 2CFBh | 2CFCh | 2CFDh | 2CFEh | 2CFFh | 10A0h |
0A80h | 10A1h | 10A2h | 10A3h | 10A4h | 10A5h | 10A6h | 10A7h | 10A8h |
0A88h | 10A9h | 10AAh | 10ABh | 10ACh | 10ADh | 10AEh | 10AFh | 10B0h |
0A90h | 10B1h | 10B2h | 10B3h | 10B4h | 10B5h | 10B6h | 10B7h | 10B8h |
0A98h | 10B9h | 10BAh | 10BBh | 10BCh | 10BDh | 10BEh | 10BFh | 10C0h |
0AA0h | 10C1h | 10C2h | 10C3h | 10C4h | 10C5h | FFFFh | D21Bh | FF21h |
0AA8h | FF22h | FF23h | FF24h | FF25h | FF26h | FF27h | FF28h | FF29h |
0AB0h | FF2Ah | FF2Bh | FF2Ch | FF2Dh | FF2Eh | FF2Fh | FF30h | FF31h |
0AB8h | FF32h | FF33h | FF34h | FF35h | FF36h | FF37h | FF38h | FF39h |
0AC0h | FF3Ah | FF5Bh | FF5Ch | FF5Dh | FF5Eh | FF5Fh | FF60h | FF61h |
0AC8h | FF62h | FF63h | FF64h | FF65h | FF66h | FF67h | FF68h | FF69h |
0AD0h | FF6Ah | FF6Bh | FF6Ch | FF6Dh | FF6Eh | FF6Fh | FF70h | FF71h |
0AD8h | FF72h | FF73h | FF74h | FF75h | FF76h | FF77h | FF78h | FF79h |
0AE0h | FF7Ah | FF7Bh | FF7Ch | FF7Dh | FF7Eh | FF7Fh | FF80h | FF81h |
0AE8h | FF82h | FF83h | FF84h | FF85h | FF86h | FF87h | FF88h | FF89h |
0AF0h | FF8Ah | FF8Bh | FF8Ch | FF8Dh | FF8Eh | FF8Fh | FF90h | FF91h |
0AF8h | FF92h | FF93h | FF94h | FF95h | FF96h | FF97h | FF98h | FF99h |
0B00h | FF9Ah | FF9Bh | FF9Ch | FF9Dh | FF9Eh | FF9Fh | FFA0h | FFA1h |
0B08h | FFA2h | FFA3h | FFA4h | FFA5h | FFA6h | FFA7h | FFA8h | FFA9h |
0B10h | FFAAh | FFABh | FFACh | FFADh | FFAEh | FFAFh | FFB0h | FFB1h |
0B18h | FFB2h | FFB3h | FFB4h | FFB5h | FFB6h | FFB7h | FFB8h | FFB9h |
0B20h | FFBAh | FFBBh | FFBCh | FFBDh | FFBEh | FFBFh | FFC0h | FFC1h |
0B28h | FFC2h | FFC3h | FFC4h | FFC5h | FFC6h | FFC7h | FFC8h | FFC9h |
0B30h | FFCAh | FFCBh | FFCCh | FFCDh | FFCEh | FFCFh | FFD0h | FFD1h |
0B38h | FFD2h | FFD3h | FFD4h | FFD5h | FFD6h | FFD7h | FFD8h | FFD9h |
0B40h | FFDAh | FFDBh | FFDCh | FFDDh | FFDEh | FFDFh | FFE0h | FFE1h |
0B48h | FFE2h | FFE3h | FFE4h | FFE5h | FFE6h | FFE7h | FFE8h | FFE9h |
0B50h | FFEAh | FFEBh | FFECh | FFEDh | FFEEh | FFEFh | FFF0h | FFF1h |
0B58h | FFF2h | FFF3h | FFF4h | FFF5h | FFF6h | FFF7h | FFF8h | FFF9h |
0B60h | FFFAh | FFFBh | FFFCh | FFFDh | FFFEh | FFFFh |
7.3 Birim Etiketi Dizin Girdisi
Birim Etiketi, son kullanıcıların depolama birimlerini ayırt etmesine olanak tanıyan bir Unicode dizesidir. ExFAT dosya sisteminde, Birim Etiketi kök dizinde kritik bir birincil dizin girdisi olarak bulunur (bkz . Tablo 26). Birim Etiketi dizin girdilerinin geçerli sayısı 0 ile 1 arasında değişir.
Tablo 26 Birim Etiketi DiziniGerekli Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.3.1 içeriğini tanımlar. |
KarakterSayısı | 1 | 1 | Bu alan zorunludur ve Bölüm 7.3.2 içeriğini tanımlar. |
Birim Etiketi | 2 | 22 | Bu alan zorunludur ve Bölüm 7.3.3 içeriğini tanımlar. |
Rezerve edildi | yirmi dört | 8 | Bu alan zorunludur ve içeriği saklıdır. |
7.3.1 EntryType (Giriş Tipi) Alanı
EntryType alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1).
7.3.1.1 TypeCode Alanı
TypeCode alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.1).
Birim Etiketi dizin girdisi için bu alanın geçerli değeri 3'dür.
7.3.1.2 TypeImportance Alanı
TypeImportance alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.2).
Birim Etiketi dizin girdisi için bu alanın geçerli değeri 0'dır.
7.3.1.3 TypeCategory Alanı
TypeCategory alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.3).
7.3.1.4 InUse Alanı
InUse alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.4).
7.3.2 CharacterCount Alanı
CharacterCount alanı VolumeLabel alanının içerdiği Unicode dizesinin uzunluğunu içermelidir.
Bu alan için geçerli değer aralığı:
- En az 0, yani Unicode dizesi 0 karakter uzunluğundadır (birim etiketinin olmamasının eşdeğeridir)
- En fazla 11, yani Unicode dizesi 11 karakter uzunluğundadır
7.3.3 VolumeLabel Alanı
VolumeLabel alanı, birimin kullanıcı dostu adı olan bir Unicode dizesi içermelidir. VolumeLabel alanı, Dosya Adı dizin girdisinin FileName alanıyla aynı geçersiz karakter kümesine sahiptir (bkz . Bölüm 7.7.3).
7.4 Dosya Dizini Girdisi
Dosya dizini girdileri dosyaları ve dizinleri açıklar. Bunlar kritik birincil dizin girdileridir ve herhangi bir dizin sıfır veya daha fazla Dosya dizini girdisi içerebilir (bkz . Tablo 27). Bir Dosya dizini girişinin geçerli olması için, tam olarak bir Stream Uzantısı dizin girdisi ve en az bir Dosya Adı dizin girdisi hemen Dosya dizini girdisini izlemelidir (sırasıyla bkz. Bölüm 7.6 ve Bölüm 7.7).
Tablo 27 Dizin Girişi
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.4.1 içeriğini tanımlar. |
İkincil Sayım | 1 | 1 | Bu alan zorunludur ve Bölüm 7.4.2 içeriğini tanımlar. |
SetChecksum | 2 | 2 | Bu alan zorunludur ve Bölüm 7.4.3 içeriğini tanımlar. |
FileAttributes | 4 | 2 | Bu alan zorunludur ve Bölüm 7.4.4 içeriğini tanımlar. |
Ayrılmış1 | 6 | 2 | Bu alan zorunludur ve içeriği saklıdır. |
CreateTimestamp | 8 | 4 | Bu alan zorunludur ve Bölüm 7.4.5 içeriğini tanımlar. |
LastModifiedTimestamp | 12 | 4 | Bu alan zorunludur ve Bölüm 7.4.6 içeriğini tanımlar. |
SonErisimZamanDamgasi | 16 | 4 | Bu alan zorunludur ve Bölüm 7.4.7 içeriğini tanımlar. |
10msArtışOluştur | 20 | 1 | Bu alan zorunludur ve Bölüm 7.4.5 içeriğini tanımlar. |
SonDeğişiklik10msArtış | 21 | 1 | Bu alan zorunludur ve Bölüm 7.4.6 içeriğini tanımlar. |
UtcOffsetOluştur | 22 | 1 | Bu alan zorunludur ve Bölüm 7.4.5 içeriğini tanımlar. |
SonDeğişiklikUtcDenklem | 23 | 1 | Bu alan zorunludur ve Bölüm 7.4.6 içeriğini tanımlar. |
SonErişimUtcOfseti | yirmi dört | 1 | Bu alan zorunludur ve Bölüm 7.4.7 içeriğini tanımlar. |
Rezerve2 | Yirmi beş | 7 | Bu alan zorunludur ve içeriği saklıdır. |
7.4.1 EntryType Alanı
EntryType alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1).
7.4.1.1 TypeCode Alanı
TypeCode alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.1).
Dosya dizini girdisi için bu alanın geçerli değeri 5'tir.
7.4.1.2 TypeImportance Alanı
TypeImportance alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.2).
Dosya dizini girdisi için bu alanın geçerli değeri 0'dır.
7.4.1.3 TypeCategory Alanı
TypeCategory alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.3).
7.4.1.4 InUse Alanı
InUse alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.4).
7.4.2 İkincil Sayı Alanı
SecondaryCount alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.2).
7.4.3 SetChecksum Alanı
SetChecksum alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.3).
7.4.4 FileAttributes Alanı
FileAttributes alanı bayraklar içerir (bkz . Tablo 28).
Tablo 28 FileAttributes Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
Yalnızca Okunur | 0 | 1 | Bu alan zorunludur ve MS-DOS tanımına uygundur. |
Gizli | 1 | 1 | Bu alan zorunludur ve MS-DOS tanımına uygundur. |
Sistem | 2 | 1 | Bu alan zorunludur ve MS-DOS tanımına uygundur. |
Ayrılmış1 | 3 | 1 | Bu alan zorunludur ve içeriği saklıdır. |
Dizin | 4 | 1 | Bu alan zorunludur ve MS-DOS tanımına uygundur. |
Arşiv | 5 | 1 | Bu alan zorunludur ve MS-DOS tanımına uygundur. |
Rezerve2 | 6 | 10 | Bu alan zorunludur ve içeriği saklıdır. |
7.4.5 CreateTimestamp, Create10msIncrement ve CreateUtcOffset Alanları
Birlikte CreateTimestamp ve CreateTime10msIncrement alanları, verilen dosyanın/dizinin oluşturulduğu yerel tarihi ve saati tanımlar. CreateUtcOffset alanı, yerel tarih ve saatin UTC'den uzaklığını açıklar. Uygulamalar, belirtilen dizin giriş kümesinin oluşturulmasından sonra bu alanları ayarlayacaktır.
Bu alanlar Timestamp, 10msIncrement ve UtcOffset alanlarının tanımlarına uygun olmalıdır (sırasıyla bkz. Bölüm 7.4.8, Bölüm 7.4.9 ve Bölüm 7.4.10).
7.4.6 LastModifiedTimestamp, LastModified10msIncrement ve LastModifiedUtcOffset Alanları
Birlikte, LastModifiedTimestamp ve LastModifiedTime10msIncrement alanları, verilen Stream Extension dizin girdisiyle ilişkili kümelerden herhangi birinin içeriğinin son değiştirildiği yerel tarihi ve saati açıklamalıdır. LastModifiedUtcOffset alanı, yerel tarih ve saatin UTC'den uzaklığını açıklar. Uygulamalar şu alanları güncelleştirecektir:
- Verilen Stream Uzantısı dizin girişiyle ilişkili kümelerden herhangi birinin içeriğini değiştirdikten sonra (ValidDataLength alanının açıkladığı noktanın ötesindeki içerikler dışında)
- ValidDataLength veya DataLength alanlarının değerlerini değiştirerek
Bu alanlar Timestamp, 10msIncrement ve UtcOffset alanlarının tanımlarına uygun olmalıdır (sırasıyla bkz. Bölüm 7.4.8, Bölüm 7.4.9 ve Bölüm 7.4.10).
7.4.7 LastAccessedTimestamp ve LastAccessedUtcOffset Alanları
LastAccessedTimestamp alanı, verilen Stream Uzantısı dizin girdisiyle ilişkili kümelerden herhangi birinin içeriğinin son erişildiği yerel tarihi ve saati açıklamalıdır. LastAccessedUtcOffset alanı, yerel tarih ve saatin UTC'den uzaklığını açıklar. Uygulamalar şu alanları güncelleştirecektir:
- Verilen Stream Uzantısı dizin girişiyle ilişkili kümelerden herhangi birinin içeriğini değiştirdikten sonra (ValidDataLength'in ötesindeki içerikler dışında)
- ValidDataLength veya DataLength alanlarının değerlerini değiştirerek
Uygulamalar, verilen Stream Extension dizin girdisiyle ilişkili kümelerden herhangi birinin içeriğini okuduktan sonra bu alanları güncelleştirmelidir.
Bu alanlar Timestamp ve UtcOffset alanlarının tanımlarına uygun olmalıdır (sırasıyla Bölüm 7.4.8 ve Bölüm 7.4.10'a bakın).
7.4.8 Zaman Damgası Alanları
Zaman damgası alanları, iki saniyelik bir çözünürlüğe kadar hem yerel tarih hem de saati açıklar (bkz . Tablo 29).
Tablo 29 Zaman Damgası Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
DoubleSeconds | 0 | 5 | Bu alan zorunludur ve Bölüm 7.4.8.1 içeriğini tanımlar. |
Dakika | 5 | 6 | Bu alan zorunludur ve Bölüm 7.4.8.2 içeriğini tanımlar. |
Saat | 11 | 5 | Bu alan zorunludur ve Bölüm 7.4.8.3 içeriğini tanımlar. |
Gün | 16 | 5 | Bu alan zorunludur ve Bölüm 7.4.8.4 içeriğini tanımlar. |
Ay | 21 | 4 | Bu alan zorunludur ve Bölüm 7.4.8.5 içeriğini tanımlar. |
Yıl | Yirmi beş | 7 | Bu alan zorunludur ve Bölüm 7.4.8.6 içeriğini tanımlar. |
7.4.8.1 DoubleSeconds Alanı
DoubleSeconds alanı, Zaman Damgası alanının saniye bölümünü iki saniyelik katlar halinde tanımlar.
Bu alan için geçerli değer aralığı:
- 0, 0 saniyeyi temsil eder
- 29, 58 saniyeyi temsil eder
7.4.8.2 Dakikalık Alan
Dakika alanı, Zaman Damgası alanının dakika bölümünü açıklamalı.
Bu alan için geçerli değer aralığı:
- 0, 0 dakikayı temsil eder
- 59 dakikayı temsil eden 59
7.4.8.3 Saatlik Alan
Saat alanı, Zaman Damgası alanının saat bölümünü açıklamalı.
Bu alan için geçerli değer aralığı:
- 0, saat 00:00'ı temsil eder
- Saat 23:00'i temsil eden 23
7.4.8.4 Gün Alanı
Gün alanı, Zaman Damgası alanının gün bölümünü tanımlar.
Bu alan için geçerli değer aralığı:
- 1, verilen ayın ilk günüdür
- Verilen ayın son günü (verilen ay geçerli gün sayısını tanımlar)
7.4.8.5 Ay Alanı
Ay alanı, Zaman Damgası alanının ay bölümünü tanımlar.
Bu alan için geçerli değer aralığı:
- Ocak'ı temsil eden en az 1
- En fazla 12 olan, Aralık'ı temsil eder
7.4.8.6 Yıllık Alan
Year alanı, Timestamp alanının yıl kısmını 1980 yılına göre tanımlar. Bu alan, 0 değerine sahip 1980 yılını ve 127 değeriyle 2107 yılını temsil eder.
Bu alan için tüm olası değerler geçerlidir.
7.4.9 10msIncrement Alanları
10msIncrement alanları, karşılık gelen Zaman Damgası alanlarına on milisaniyelik katlar halinde ek zaman çözünürlüğü sağlayacaktır.
Bu alanlar için geçerli değer aralığı şunlardır:
- En azından 0 milisaniyeyi temsil eden 0
- En fazla 199, yani 1990 milisaniyeyi temsil ediyor
7.4.10 UtcOffset Alanları
UtcOffset alanları (bkz Tablo 30), UTC'den yerel tarih ve saate olan uzaklığı açıklamalıdır ve bu alanlar ilgili Timestamp ve 10msIncrement alanlarını etkiler. UTC'den yerel tarih ve saate uzaklık, saat dilimlerinin etkilerini ve yaz saati ve bölgesel yaz saati değişiklikleri gibi diğer tarih-saat ayarlamalarını içerir.
Tablo 30 UtcOffset Alan Yapısı
Alan Adı | Uzaklık (bit) |
Boyut (bit) |
Açıklamalar |
---|---|---|---|
UTC'den Sapma | 0 | 7 | Bu alan zorunludur ve Bölüm 7.4.10.1içeriğini tanımlar. |
OfsetGeçerli | 7 | 1 | Bu alan zorunludur ve Bölüm 7.4.10.2 içeriğini tanımlar. |
7.4.10.1 OffsetFromUtc Alanı
OffsetFromUtc alanı, ilgili Timestamp ve 10msIncrement alanlarının içerdiği yerel tarih ve saatin UTC'sinden uzaklığı açıklayacaktır. Bu alan 15 dakikalık aralıklarla UTC'den uzaklığı açıklar (bkz. Tablo 31).
Tablo 31 OffsetFromUtc Alanının Değerlerinin Anlamı
Değer | İmzalı Ondalık Eşdeğeri | Açıklama |
---|---|---|
3Fh | 63 | Yerel tarih ve saat UTC + 15:45 |
3Eh | 62 | Yerel tarih ve saat UTC + 15:30 |
. . . |
. . . |
. . . |
01 saat | 1 | Yerel tarih ve saat UTC + 00:15 |
00:00 | 0 | Yerel tarih ve saat UTC'dir |
7Fh | -1 | Yerel tarih ve saat UTC – 00:15 |
. . . |
. . . |
. . . |
41 saat | -63 | Yerel tarih ve saat UTC – 15:45 |
40h | -64 | Yerel tarih ve saat UTC – 16:00 |
Yukarıdaki tabloda gösterildiği gibi, bu alan için tüm olası değerler geçerlidir. Ancak, uygulamalar yalnızca şu durumlarda bu alan için 00h değerini kaydetmelidir:
- Yerel tarih ve saat aslında UTC ile aynıdır ve bu durumda OffsetValid alanının değeri 1 olacaktır
- Yerel tarih ve saat bilinmemektedir, bu durumda OffsetValid alanının değeri 1 olur ve uygulamalar UTC'yi yerel tarih ve saat olarak kabul eder
- UTC bilinmez, bu durumda OffsetValid alanının değeri 0 olacaktır
UTC'den yerel tarih ve saat farkı 15 dakikalık aralıkların katı değilse, uygulamalar OffsetFromUtc alanına 00 saat kaydeder ve UTC'yi yerel tarih ve saat olarak kabul eder.
7.4.10.2 OffsetValid Alanı
OffsetValid alanı, OffsetFromUtc alanının içeriğinin geçerli olup olmadığını aşağıdaki gibi açıklamaktadır:
0, OffsetFromUtc alanının içeriğinin geçersiz olduğu anlamına gelir
ve 00h olacaktır
1, yani OffsetFromUtc alanının içeriği geçerli
Uygulamalar bu alanı yalnızca OffsetFromUtc alanının değerini hesaplama için UTC kullanılamadığında 0 değerine ayarlamalıdır. Bu alan 0 değerini içeriyorsa, uygulamalar Timestamp ve 10msIncrement alanlarını geçerli yerel tarih ve saatle aynı UTC uzaklığıyla ele alır.
7.5 Birim GUID Dizin Girdisi
Birim GUID dizin girdisi, uygulamaların birimleri benzersiz ve programlı olarak ayırt etmesine olanak tanıyan bir GUID içerir. Birim GUID'i kök dizinde zararsız bir birincil dizin girdisi olarak bulunur (bkz . Tablo 32). Birim GUID dizin girdilerinin geçerli sayısı 0 ile 1 arasında değişir.
Tablo 32 Birim GUID Dizin Girişi
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.5.1 içeriğini tanımlar. |
İkincil Sayım | 1 | 1 | Bu alan zorunludur ve Bölüm 7.5.2 içeriğini tanımlar. |
SetChecksum | 2 | 2 | Bu alan zorunludur ve Bölüm 7.5.3 içeriğini tanımlar. |
Genel Birincil Bayraklar | 4 | 2 | Bu alan zorunludur ve Bölüm 7.5.4 içeriğini tanımlar. |
VolumeGuid | 6 | 16 | Bu alan zorunludur ve Bölüm 7.5.5 içeriğini tanımlar. |
Rezerve edildi | 22 | 10 | Bu alan zorunludur ve içeriği saklıdır. |
7.5.1 EntryType Alanı
EntryType alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1).
7.5.1.1 TypeCode Alanı
TypeCode alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.1).
Birim GUID dizin girdisi için bu alanın geçerli değeri 0'dır.
7.5.1.2 TypeImportance Alanı
TypeImportance alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.2).
Birim GUID dizin girdisi için bu alanın geçerli değeri 1'dir.
7.5.1.3 TipKategori Alanı
TypeCategory alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.3).
7.5.1.4 InUse Alanı
InUse alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.1.4).
7.5.2 SecondaryCount Alanı
SecondaryCount alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.2).
Birim GUID dizin girdisi için bu alanın geçerli değeri 0'dır.
7.5.3 SetChecksum Alanı
SetChecksum alanı, Genel Birincil DizinGrup şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.3).
7.5.4 GenelPrimaryFlags Alanı
GeneralPrimaryFlags alanı, Genel Birincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.4) ve ayrılacak CustomDefined alanının içeriğini tanımlar.
7.5.4.1 Tahsis Mümkün Alanı
AllocationPossible alanı, Genel Birincil DizinGiriş şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.4.1).
Birim GUID dizin girdisi için bu alanın geçerli değeri 0'dır.
7.5.4.2 NoFatChain Alanı
NoFatChain alanı, Genel Birincil DizinEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.3.4.2).
7.5.5 VolumeGuid Alanı
VolumeGuid alanı, verilen birimi benzersiz olarak tanımlayan bir GUID içermelidir.
Bu alan için tüm olası değerler, null GUID (olan {00000000-0000-0000-0000-000000000000}) dışında geçerlidir.
7.6 Stream Uzantısı Dizin Girdisi
Stream Uzantısı dizin girdisi, Dosya dizini girdi kümelerindeki kritik bir ikincil dizin girdisidir (bkz . Tablo 33). Bir Dosya dizin girdi kümesindeki geçerli Akış Uzantısı dizin girdisi sayısı 1'dir. Ayrıca, bu dizin girdisi yalnızca Dosya dizin girdisini hemen takip ederse geçerlidir.
Tablo 33 Akış Uzantısı Dizin Girişi
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.6.1 içeriğini tanımlar. |
GenelİkincilBayraklar | 1 | 1 | Bu alan zorunludur ve Bölüm 7.6.2 içeriğini tanımlar. |
Ayrılmış1 | 2 | 1 | Bu alan zorunludur ve içeriği saklıdır. |
İsimUzunluğu | 3 | 1 | Bu alan zorunludur ve Bölüm 7.6.3 içeriğini tanımlar. |
NameHash | 4 | 2 | Bu alan zorunludur ve Bölüm 7.6.4 içeriğini tanımlar. |
Rezerve2 | 6 | 2 | Bu alan zorunludur ve içeriği saklıdır. |
GeçerliVeriUzunluğu | 8 | 8 | Bu alan zorunludur ve Bölüm 7.6.5 içeriğini tanımlar. |
Ayrılmış 3 | 16 | 4 | Bu alan zorunludur ve içeriği saklıdır. |
İlkKüme | 20 | 4 | Bu alan zorunludur ve Bölüm 7.6.6 içeriğini tanımlar. |
Veri Uzunluğu | yirmi dört | 8 | Bu alan zorunludur ve Bölüm 7.6.7 içeriğini tanımlar. |
7.6.1 EntryType Alanı
EntryType alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1).
7.6.1.1 TypeCode Alanı
TypeCode alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.1).
Stream Uzantısı dizin girdisi için bu alanın geçerli değeri 0'dır.
7.6.1.2 TypeImportance Alanı
TypeImportance alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.2).
Stream Uzantısı dizin girdisi için bu alanın geçerli değeri 0'dır.
7.6.1.3 TypeCategory Alanı
TypeCategory alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.3).
7.6.1.4 InUse Alanı
InUse alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz. Bölüm 6.4.1.4).
7.6.2 GenelİkincilBayraklar Alanı
GeneralSecondaryFlags alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2) ve ayrılacak CustomDefined alanının içeriğini tanımlar.
7.6.2.1 AyırmaPossible Field
AllocationPossible alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.1).
Stream Uzantısı dizin girdisi için bu alanın geçerli değeri 1'dir.
7.6.2.2 NoFatChain Alanı
NoFatChain alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.2).
7.6.3 İsimUzunluğu Alanı
NameLength alanı, sonraki Dosya Adı dizin girdilerinin (bkz . Bölüm 7.7) toplu olarak içerdiği Unicode dizesinin uzunluğunu içermelidir.
Bu alan için geçerli değer aralığı:
- En az 1 karakter olan, mümkün olan en kısa dosya adı
- En fazla 255 olan, mümkün olan en uzun dosya adıdır.
NameLength alanının değeri, Dosya Adı Dizin Girdileri sayısını da etkiler (bkz . Bölüm 7.7).
7.6.4 NameHash Alanı
NameHash alanı, büyük harfle yazılmış dosya adının 2 baytlık karmasını (bkz. Şekil 4) içermelidir. Bu, uygulamaların ada göre dosya ararken hızlı bir karşılaştırma gerçekleştirmesini sağlar. Daha da önemlisi, NameHash bir uyuşmazlık için kesin bir doğrulama sağlar. Uygulamalar, tüm NameHash eşleşmelerini büyük harfe dönüştürülmüş dosya adıyla karşılaştırarak doğrulamalıdır.
Şekil 4 NameHash Hesaplaması
UInt16 NameHash
(
WCHAR * FileName, // points to an in-memory copy of the up-cased file name
UCHAR NameLength
)
{
UCHAR * Buffer = (UCHAR *)FileName;
UInt16 NumberOfBytes = (UInt16)NameLength * 2;
UInt16 Hash = 0;
UInt16 Index;
for (Index = 0; Index < NumberOfBytes; Index++)
{
Hash = ((Hash&1) ? 0x8000 : 0) + (Hash>>1) + (UInt16)Buffer[Index];
}
return Hash;
}
7.6.5 ValidDataLength Alanı
ValidDataLength alanı, veri akışı kullanıcı verilerinin ne kadar içine yazıldığını açıklamalı. Uygulamalar, veri akışına daha fazla veri yazarken bu alanı güncelleştirecektir. Depolama medyası üzerinde geçerli veri uzunluğu ile veri akışının veri uzunluğu arasındaki veriler tanımlanmamıştır. Uygulamalar, geçerli veri uzunluğunun ötesinde okuma işlemleri için sıfır döndürecektir.
Karşılık gelen Dosya dizini girdisi bir dizini açıklıyorsa, bu alan için tek geçerli değer DataLength alanının değerine eşittir. Aksi takdirde, bu alan için geçerli değerler aralığı şöyle olacaktır:
- En az 0, başka bir deyişle veri akışına hiçbir kullanıcı verisi yazılmış değil
- Veri uzunluğu en fazla DataLength olabilir; bu, kullanıcı verilerinin veri akışının tüm uzunluğuna yazıldığı anlamına gelir.
7.6.6 Birinci Küme alanı
FirstCluster alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.3).
Bu alan, kullanıcı verilerini barındıran veri akışının ilk kümesinin dizinini içermelidir.
7.6.7 DataLength Alanı
DataLength alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.4).
Karşılık gelen Dosya dizini girdisi bir dizini açıklıyorsa, bu alan için geçerli değer, ilişkili ayırmanın bayt cinsinden tüm boyutudur ve bu da 0 olabilir. Ayrıca, dizinler için bu alanın en büyük değeri 256 MB'tır.
7.7 Dosya Adı Dizin Girdisi
Dosya Adı dizin girdileri, Dosya dizini girdi kümelerindeki kritik ikincil dizin girişleridir (bkz . Tablo 34). Dosya dizini girdi kümesindeki geçerli Dosya Adı dizin girdisi sayısı NameLength / 15'tir ve en yakın tamsayıya yuvarlanmış olur. Ayrıca, Dosya Adı dizin girdileri yalnızca Stream Uzantısı dizin girdisini ardışık bir seri olarak hemen izlediklerinde geçerlidir. Dosya Adı dizin girdileri, Dosya dizini girdi kümesinin dosya adını oluşturmak için birleştirilir.
Belirli bir dizin girdisinin tüm alt öğeleri benzersiz Dosya Adı Dizin Giriş Kümelerine sahip olmalıdır. Başka bir ifadeyle, herhangi bir dizin içinde büyük/küçük harf kullandıktan sonra yinelenen dosya veya dizin adı olamaz.
Tablo 34 Dosya Adı Dizini Girişi
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.7.1 içeriğini tanımlar. |
GenelİkincilBayraklar | 1 | 1 | Bu alan zorunludur ve Bölüm 7.7.2 içeriğini tanımlar. |
DosyaAdı | 2 | 30 | Bu alan zorunludur ve Bölüm 7.7.3 içeriğini tanımlar. |
7.7.1 EntryType Alanı
EntryType alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1).
7.7.1.1 TypeCode Alanı
TypeCode alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.1).
Dosya Adı dizin girdisi için bu alanın geçerli değeri 1'dir.
7.7.1.2 TürÖnemi Alanı
TypeImportance alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.2).
Dosya Adı dizin girdisi için bu alanın geçerli değeri 0'dır.
7.7.1.3 TypeCategory Alanı
TypeCategory alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.3).
7.7.1.4 InUse Alanı
InUse alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz. Bölüm 6.4.1.4).
7.7.2 GenelİkincilBayraklar Alanı
GeneralSecondaryFlags alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2) ve ayrılacak CustomDefined alanının içeriğini tanımlar.
7.7.2.1 Tahsis Mümkün Alan
AllocationPossible alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.1).
Dosya Adı dizin girdisi için bu alanın geçerli değeri 0'dır.
7.7.2.2 NoFatChain Alanı
NoFatChain alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.2).
7.7.3 Dosya Adı Alanı
FileName alanı, dosya adının bir bölümü olan bir Unicode dizesi içermelidir. Dosya Adı dizin girdilerinin bir Dosya dizini girdi kümesinde var olduğu sırada, DosyaAdı alanları, Dosya dizini giriş kümesinin dosya adını oluşturacak şekilde birleşir. FileName alanının uzunluğu, 15 karakter ve en fazla Dosya Adı dizin girdisi sayısı (17) dikkate alındığında, son, birleştirilmiş dosya adının uzunluğu üst sınırı 255'tir.
Birleştirilmiş dosya adı, diğer FAT tabanlı dosya sistemleriyle aynı geçersiz karakter kümesine sahiptir (bkz . Tablo 35). Uygulamalar, FileName alanlarının kullanılmayan karakterlerini 0000h değerine ayarlamalıdır.
Tablo 35 Geçersiz Dosya Adı Karakterleri
Karakter Kodu | Açıklama | Karakter Kodu | Açıklama | Karakter Kodu | Açıklama |
---|---|---|---|---|---|
00:00 | Denetim kodu | 0001h | Denetim kodu | 0002h | Denetim kodu |
0003h | Denetim kodu | 0004h | Denetim kodu | 0005h | Denetim kodu |
0006h | Denetim kodu | 0007h | Denetim kodu | 0008h | Denetim kodu |
0009h | Denetim kodu | 000Ah | Denetim kodu | 000Bh | Denetim kodu |
000Ch | Denetim kodu | 000Dh | Denetim kodu | 000Eh | Denetim kodu |
000Fh | Denetim kodu | 0010h | Denetim kodu | 0011h | Denetim kodu |
0012h | Denetim kodu | 0013h | Denetim kodu | 0014h | Denetim kodu |
0015h | Denetim kodu | 0016h | Denetim kodu | 0017h | Denetim kodu |
0018h | Denetim kodu | 0019h | Denetim kodu | 001Ah | Denetim kodu |
001Bh | Denetim kodu | 001Ch | Denetim kodu | 001Dh | Denetim kodu |
001Eh | Denetim kodu | 001Fh | Denetim kodu | 0022h | Tırnak işareti |
002Ah | Yıldız işareti | 002Fh | Eğik çizgi | 003Ah | İki nokta üst üste |
003Ch | Küçüktür işareti | 003Eh | Büyüktür işareti | 003Fh | Soru işareti |
005Ch | Ters eğik çizgi | 007Ch | Dikey çubuk |
"." ve ".." dosya adları sırasıyla "bu dizin" ve "dizin içeren" özel anlamlarını içerir. Uygulamalar, bu ayrılmış dosya adlarından herhangi birini FileName alanına kaydetmez. Ancak, uygulamalar listelenen dizine ve içeren dizine başvurmak için dizin listelerinde bu iki dosya adını oluşturabilir.
Uygulamalar, dosya ve dizin adlarını yalnızca ASCII karakter kümesiyle kısıtlamak isteyebilir. Öyleyse, karakter kullanımını ilk 128 Unicode girdisindeki geçerli karakter aralığıyla sınırlamaları gerekir. Hâlâ dosya ve dizin adlarını bölüm üzerinde Unicode olarak depolamalı ve kullanıcıyla etkileşim kurarken ASCII'den Unicode'a ve Unicode'dan ASCII'ye çeviri yapmalıdır.
7.8 Satıcı Uzantısı Dizin Girdisi
Satıcı Uzantısı dizin girdisi, Dosya dizini giriş kümelerindeki zararsız bir ikincil dizin girdisidir (bkz . Tablo 36). Dosya dizini girdi kümesi, ikincil dizin girdilerinin sınırına kadar, diğer ikincil dizin girdilerinin sayısından daha az sayıda Satıcı Uzantısı dizin girdisi içerebilir. Ayrıca, Satıcı Uzantısı dizin girdileri yalnızca gerekli Akış Uzantısı ve Dosya Adı dizin girdilerinden önce gelmedikleri takdirde geçerlidir.
Satıcı Uzantısı dizin girişleri satıcıların VendorGuid alanı aracılığıyla tek tek Dosya dizini giriş kümelerinde benzersiz, satıcıya özgü dizin girdilerine sahip olmasını sağlar (bkz. Tablo 36). Benzersiz dizin girişleri, satıcıların exFAT dosya sistemini genişletmesini etkili bir şekilde sağlar. Satıcılar VendorDefined alanının içeriğini tanımlayabilir (bkz . Tablo 36). Satıcı uygulamaları VendorDefined alanının içeriğini koruyabilir ve satıcıya özgü işlevler sağlayabilir.
Bir Satıcı Uzantısı dizin girişinin GUID değerini tanımayan uygulamalar, dizin girdisini diğer tanınmayan zararsız ikincil dizin girdileriyle aynı şekilde ele alır (bkz . Bölüm 8.2).
Tablo 36 Satıcı Uzantısı DizinGirişi
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.8.1 içeriğini tanımlar. |
GenelİkincilBayraklar | 1 | 1 | Bu alan zorunludur ve Bölüm 7.8.2 içeriğini tanımlar. |
Satıcı Rehberi | 2 | 16 | Bu alan zorunludur ve Bölüm 7.8.3 içeriğini tanımlar. |
Tedarikçi Tanımlı | 18 | 14 | Bu alan zorunludur ve satıcılar içeriğini tanımlayabilir. |
7.8.1 EntryType Alanı
EntryType alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1).
7.8.1.1 TypeCode Alanı
TypeCode alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.1).
Satıcı Uzantısı dizin girdisi için bu alanın geçerli değeri 0'dır.
7.8.1.2 TypeImportance Alanı
TypeImportance alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.2).
Satıcı Uzantısı dizin girdisi için bu alanın geçerli değeri 1'dir.
7.8.1.3 TypeCategory Alanı
TypeCategory alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.3).
7.8.1.4 InUse Alanı
InUse alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz. Bölüm 6.4.1.4).
7.8.2 GenelSacondaryFlags Alanı
GeneralSecondaryFlags alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2) ve ayrılacak CustomDefined alanının içeriğini tanımlar.
7.8.2.1 Ayrılabilirlik Alanı
AllocationPossible alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.1).
Satıcı Uzantısı dizin girdisi için bu alanın geçerli değeri 0'dır.
7.8.2.2 NoFatChain Alanı
NoFatChain alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.2).
7.8.3 VendorGuid Alanı
VendorGuid alanı, verilen Satıcı Uzantısını benzersiz olarak tanımlayan bir GUID içermelidir.
Bu alan için tüm olası değerler, null GUID (olan {00000000-0000-0000-0000-000000000000}) dışında geçerlidir. Ancak, satıcılar uzantılarını tanımlarken GUID seçmek için GuidGen.exegibi bir GUID oluşturma aracı kullanmalıdır.
Bu alanın değeri VendorDefined alanının satıcıya özgü yapısını belirler.
7.9 Satıcı Ayırma Dizini Girdisi
Satıcı Ayırma dizin girdisi, Dosya dizini giriş kümelerindeki zararsız bir ikincil dizin girdisidir (bkz . Tablo 37). Dosya dizini girdi kümesi, ikincil dizin girdilerinin sınırına kadar, diğer ikincil dizin girdilerinin sayısından daha az sayıda Satıcı Ayırma dizin girdisi içerebilir. Ayrıca, Satıcı Ayırma dizin girdileri yalnızca gerekli Akış Uzantısı ve Dosya Adı dizin girdilerinden önce gelmedikleri takdirde geçerlidir.
Satıcı Ayırma dizin girişleri satıcıların VendorGuid alanı aracılığıyla tek tek Dosya dizini giriş kümelerinde benzersiz, satıcıya özgü dizin girişlerine sahip olmasını sağlar (bkz . Tablo 37). Benzersiz dizin girişleri, satıcıların exFAT dosya sistemini genişletmesini etkili bir şekilde sağlar. Varsa, satıcılar ilişkili kümelerin içeriğini tanımlayabilir. Satıcı uygulamaları, varsa ilişkili kümelerin içeriğini koruyabilir ve satıcıya özgü işlevler sağlayabilir.
Satıcı Ayırma dizin girişinin GUID değerini tanımayan uygulamalar, dizin girdisini diğer tanınmayan zararsız ikincil dizin girdileriyle aynı şekilde ele alır (bkz . Bölüm 8.2).
Tablo 37 Vendor Allocation DirectoryEntry
Alan Adı | Uzaklık (bayt) |
Boyut (bayt) |
Açıklamalar |
---|---|---|---|
Giriş Türü | 0 | 1 | Bu alan zorunludur ve Bölüm 7.9.1 içeriğini tanımlar. |
GenelİkincilBayraklar | 1 | 1 | Bu alan zorunludur ve Bölüm 7.9.2 içeriğini tanımlar. |
Satıcı Rehberi | 2 | 16 | Bu alan zorunludur ve Bölüm 7.9.3 içeriğini tanımlar. |
Tedarikçi Tanımlı | 18 | 2 | Bu alan zorunludur ve satıcılar içeriğini tanımlayabilir. |
İlkKüme | 20 | 4 | Bu alan zorunludur ve Bölüm 7.9.4 içeriğini tanımlar. |
Veri Uzunluğu | yirmi dört | 8 | Bu alan zorunludur ve Bölüm 7.9.5 içeriğini tanımlar. |
7.9.1 EntryType Alanı
EntryType alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1).
7.9.1.1 TypeCode Alanı
TypeCode alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.1).
Satıcı Ayırma dizin girdisi için bu alanın geçerli değeri 1'dir.
7.9.1.2 TypeImportance Alanı
TypeImportance alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.2).
Satıcı Ayırma dizin girdisi için bu alanın geçerli değeri 1'dir.
7.9.1.3 TipKategori Alanı
TypeCategory alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.1.3).
7.9.1.4 InUse Alanı
InUse alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz. Bölüm 6.4.1.4).
7.9.2 GenelSacondaryFlags Alanı
GeneralSecondaryFlags alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2) ve ayrılacak CustomDefined alanının içeriğini tanımlar.
7.9.2.1 Tahsis Mümkün Alanı
AllocationPossible alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.1).
Satıcı Ayırma dizin girdisi için bu alanın geçerli değeri 1'dir.
7.9.2.2 NoFatChain Alanı
NoFatChain alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.2.2).
7.9.3 VendorGuid Alanı
VendorGuid alanı, verilen Satıcı Ayırmasını benzersiz olarak tanımlayan bir GUID içermelidir.
Bu alan için tüm olası değerler, null GUID (olan {00000000-0000-0000-0000-000000000000}) dışında geçerlidir. Ancak, satıcılar uzantılarını tanımlarken GUID seçmek için GuidGen.exegibi bir GUID oluşturma aracı kullanmalıdır.
Bu alanın değeri, varsa ilişkili kümelerin içeriğinin satıcıya özgü yapısını belirler.
7.9.4 birinci küme alanı
FirstCluster alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.3).
7.9.5 DataLength Alanı
DataLength alanı, Genel İkincil DirectoryEntry şablonunda sağlanan tanıma uygun olmalıdır (bkz . Bölüm 6.4.4).
7.10 TexFAT Doldurma Dizini Girdisi
ExFAT Revision 1.00 Dosya Sistemi Temel Belirtimi olan bu belirtim, TexFAT Doldurma dizin girdisini tanımlamaz. Ancak, tür kodu 1 ve tür önemi 1 olarak belirtilmiştir. Bu belirtimin uygulamaları, TexFAT Doldurma dizin girişlerini diğer tanınmayan zararsız birincil dizin girdileriyle aynı şekilde ele ayacaktır, uygulamalar TexFAT Doldurma dizin girdilerini taşımayacaktır.
8 Uygulama Notları
8.1 Önerilen Yazma Sırası
Uygulamalar, birimin hataları ve diğer kaçınılmaz hataları desteklemek için mümkün olduğunca dayanıklı olmasını sağlamalıdır. Yeni dizin girdileri oluştururken veya küme ayırmalarını değiştirirken, uygulamalar genellikle şu yazma sırasına uygun olmalıdır:
- VolumeDirty alanının değerini 1 olarak ayarlayın
- Gerekirse etkin FAT'yi güncelleştirin
- Aktif Ayırma Bit Eşlemini güncelle
- Gerekirse dizin girdisini oluşturma veya güncelleştirme
- İlk adımdan önceki değeri 0 ise VolumeDirty alanının değerini 0 olarak temizleyin
Dizin girdilerini silerken veya küme ayırmalarını serbest geçirirken, uygulamalar şu yazma sırasına uygun olmalıdır:
- VolumeDirty alanının değerini 1 olarak ayarlayın
- Gerekirse dizin girdisini silin veya güncelleştirin
- Gerekirse etkin FAT'yi güncelleştirin
- Aktif Ayırma Bit Eşlemini güncelle
- İlk adımdan önceki değeri 0 ise VolumeDirty alanının değerini 0 olarak temizleyin
8.2 Tanınmayan Dizin Girdilerinin Etkileri
Aynı ana düzeltme numarası, 1 ve 0'dan büyük küçük düzeltme numarasının gelecekteki exFAT belirtimleri, yeni zararsız birincil, kritik ikincil ve iyi huylu ikincil dizin girdileri tanımlayabilir. Yalnızca daha yüksek bir ana düzeltme numarasının exFAT belirtimleri yeni kritik birincil dizin girdilerini tanımlayabilir. ExFAT Revizyon 1.00 Dosya Sistemi Temel Belirtimi'ne göre, bu belirtimin uygulamaları, revizyon numarası 1 olan herhangi bir ana exFAT hacmini ve herhangi bir küçük sürüm numarasını mount edip bunlara erişebilmelidir. Bu, bir uygulamanın tanımadığı dizin girdileriyle karşılaşabileceği senaryoları sunar. Aşağıda bu senaryoların etkileri açıklanmaktadır:
Kök dizinde tanınmayan kritik birincil dizin girdilerinin varlığı birimi geçersiz hale getirir. Kök olmayan herhangi bir dizinde Dosya dizini girdileri dışında herhangi bir kritik birincil dizin girdisinin varlığı, barındırma dizinini geçersiz hale getirir.
Uygulamalar tanınmayan zararsız birincil dizin girdilerini veya bunların ilişkili küme ayırmalarını değiştirmeyecektir. Ancak, yalnızca bir dizini silerken, uygulamalar tanınmayan zararsız birincil dizin girişlerini silecek ve varsa, tüm ilişkili küme ayırmalarını boşa çıkaracaktır.
Uygulamalar tanınmayan kritik ikincil dizin girdilerini veya ilişkili küme ayırmalarını değiştirmeyecektir. Bir dizin giriş kümesinde bir veya daha fazla tanınmayan kritik ikincil dizin girdisinin varlığı, dizin girdi kümesinin tamamını tanınmaz hale getirir. Bir veya daha fazla tanınmayan kritik ikincil dizin girdisi içeren bir dizin girdisi kümesini silerken, uygulamalar varsa tanınmayan kritik ikincil dizin girdileriyle ilişkili tüm küme ayırmalarını serbest bırakın. Ayrıca, dizin giriş kümesi bir dizini açıklıyorsa, uygulamalar şunları yapabilir:
- Dizine geçiş yapma
- İçeren dizin girdilerini numaralandır
- İçerilen dizin girdilerini silme
- Kapsanan dizin girdilerini farklı bir dizine taşıma
Ancak, uygulamalar şunları gerçekleştirmez:
- Silme dışında, kapsanan dizin girdilerini, belirtildiği gibi değiştirme
- Yeni içerilen dizin girdileri oluşturma
- Geçiş ve numaralandırma hariç olmak üzere, belirtilen şekilde kapsanan dizin girdilerini açın.
Uygulamalar tanınmayan zararsız ikincil dizin girdilerini veya ilişkili küme ayırmalarını değiştirmeyecektir. Uygulamalar tanınmayan zararsız ikincil dizin girdilerini yoksaymalıdır. Bir dizin giriş kümesini silerken, uygulamalar, tanınmayan zararsız, ikincil dizin girdileriyle ilişkili tüm küme ayırmalarını serbest bırakmalıdır.
9 Dosya Sistemi Sınırları
9.1 Sektör Boyut Sınırları
BytesPerSectorShift alanı alt ve üst kesim boyutu sınırlarını tanımlar ( alt sınır: 512 bayt; üst sınır: 4.096 bayt olarak değerlendirilir).
9.2 Küme Boyutu Sınırları
SectorsPerClusterShift alanı alt ve üst küme boyutu sınırlarını tanımlar (alt sınır: 1 kesim; üst sınır: 25 -- BytesPerSectorShift kesimleri, 32 MB olarak değerlendirilir).
9.3 Küme Yığın Boyutu Sınırları
Küme Yığını, aşağıdaki temel dosya sistemi yapılarını barındırmak için en az yeterli alan içermelidir: kök dizin, tüm Ayırma Bit Eşlemleri ve Büyük/Küçük Harf Tablosu.
Alt Küme Yığını boyut sınırı, Küme Yığını'nda bulunan temel dosya sistemi yapılarının her birinin alt boyut sınırının bir işlevidir. Mümkün olan en küçük küme (512 bayt) göz önüne alındığında bile, temel dosya sistemi yapılarının her birinin birden fazla kümeye ihtiyacı yoktur. Bu nedenle alt sınır: NumberOfFats alanının değerine bağlı olarak 3 veya 4 küme olarak değerlendirilen 2 + NumberOfFats kümeleridir.
Üst Küme Yığını boyut sınırı, ClusterCount alanının tanımladığı mümkün olan en fazla küme sayısının basit bir işlevidir (üst sınır: 232-11 küme). Küme boyutu ne olursa olsun, böyle bir küme yığını en azından temel dosya sistemi yapılarını barındırmak için yeterli alana sahiptir.
9.4 Birim Boyutu Sınırları
VolumeLength alanı, alt ve üst hacim boyutu sınırlarını tanımlar (alt sınır: 220/ 2BytesPerSectorShiftkesimleri, 1 MB olarak değerlendirilir; üst limit: 264- 1 sektör, mümkün olan en büyük sektör boyutu göz önüne alındığında yaklaşık 64ZB olarak değerlendirilir. Ancak, bu belirtim Küme Yığınında en fazla 24 - 2 küme önerilmektedir (bkz. Bölüm 3.1.9). Bu nedenle, bir birimin önerilen üst sınırı şudur: ClusterHeapOffset + (224- 2) *2SectorsPerClusterShift. Mümkün olan en büyük küme boyutu olan 32 MB ve ClusterHeapOffset'in 96 MB (Ana ve Yedekleme Önyükleme bölgeleri ve yalnızca İlk FAT için yeterli alan) olduğu varsayıldığında, birimin önerilen üst sınırı yaklaşık 512 TB olarak değerlendirilir.
9.5 Dizin Boyutu Sınırları
Stream Extension dizin girişinin DataLength alanı, alt ve üst dizin boyutu sınırlarını tanımlar (alt sınır: 0 bayt; üst sınır: 256 MB). Bu, bir dizinin en fazla 8.388.608 dizin girdisi barındırabileceği anlamına gelir (her dizin girdisi 32 bayt tüketir). Mümkün olan en küçük Dosya dizini girdi kümesi olan üç dizin girdisi göz önüne alındığında, bir dizin en fazla 2.796.202 dosya barındırabilir.
10 Ekler
10.1 Genel Benzersiz Tanımlayıcılar (GUID)
GUID, Microsoft'un evrensel olarak benzersiz bir tanımlayıcı uygulamasıdır. GUID, 8 onaltılık basamaklardan oluşan bir gruptan oluşan 128 bitlik bir değerdir ve ardından her biri 4 onaltılık basamak olmak üzere üç grup ve ardından 12 onaltılık basamak içeren bir grup (örneğin, {6B29FC40-CA47-1067-B31D-00DD010662DA}, (bkz . Tablo 38).
Tablo 38 GUID Yapısı
Alan Adı | Uzaklık (bayt) |
Boyut (byte) |
Açıklamalar |
---|---|---|---|
Veri1 | 0 | 4 | Bu alan zorunludur ve GUID'nin ilk grubundan dört bayt içerir (örnekten 6B29FC40h). |
Veri2 | 4 | 2 | Bu alan zorunludur ve GUID'nin ikinci grubundan (örnekten CA47h) iki bayt içerir. |
Veri3 | 6 | 2 | Bu alan zorunludur ve GUID'nin üçüncü grubundan iki bayt içerir (örnekten 1067h). |
Data4[0] | 8 | 1 | Bu alan zorunludur ve GUID'nin dördüncü grubundan (örnekten B3h) en önemli baytını içerir. |
Veri4[1] | 9 | 1 | Bu alan zorunludur ve GUID'nin dördüncü grubundan (örnekten 1Dh) en az önemli bayt içerir. |
Data4[2] | 10 | 1 | Bu alan zorunludur ve GUID'nin beşinci grubundan ilk baytını içerir (örnekten 00h). |
Data4[3] | 11 | 1 | Bu alan zorunludur ve GUID'nin beşinci grubundan (örnekteki DDh) ikinci baytını içerir. |
Data4[4] | 12 | 1 | Bu alan zorunludur ve GUID'nin beşinci grubundan üçüncü baytını içerir (örnekten 01 saat). |
Data4[5] | 13 (on üç) | 1 | Bu alan zorunludur ve GUID'nin beşinci grubundan dördüncü baytını içerir (örnekten 06 saat). |
Data4[6] | 14 | 1 | Bu alan zorunludur ve GUID'nin beşinci grubundan beşinci baytını içerir (örnekten 62 sa). |
Data4[7] | 15 | 1 | Bu alan zorunludur ve GUID'nin beşinci grubundan altıncı bayt içerir (örnekten DAh). |
10.2 Bölüm Tabloları
Geniş bir kullanım senaryosu kümesinde exFAT birimlerinin birlikte çalışabilirliğini sağlamak için, uygulamalar GPT bölümlenmiş depolama için MBR bölümlenmiş depolama ve bölüm GUID'sinde {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7} bölüm türü 07h kullanmalıdır.
11 Belge Değişiklik Geçmişi
Tablo 39'da bu belgenin yayınları, düzeltmeleri, eklemeleri, kaldırmaları ve açıklamalarının geçmişi açıklanmaktadır.
Tablo 39 Belge Değişiklik Geçmişi
Tarih | Değişiklik Açıklaması |
---|---|
08 Ocak 2008 | Temel Belirtim'in şunları içeren ilk sürümü: Bölüm 1, Giriş Bölüm 2, Bölüm 3, Ana ve Yedek Önyükleme Bölgeleri Bölüm 4, Dosya Ayırma Tablosu Bölgesi Bölüm 5, Veri Bölgesi Bölüm 6, Dizin Yapısı Bölüm 7, Dizin Girişi Tanımları Bölüm 8, Uygulama Notları Bölüm 9, Dosya Sistemi Sınırları Bölüm 10, Ek |
08 Haziran 2008 | Aşağıdaki değişiklikleri içeren Temel Belirtim'in ikinci sürümü: Bölüm 11'in eklenmesi, 7.8 ve 7.9 Bölümlerinde Satıcı Uzantısı ve Satıcı Ayırma dizin girdilerinin eklenmesi Bölüm 7.2.5 ve 7.2.5.1'de önerilen büyük harf tablosunun eklenmesi Bölüm 7.4'te UtcOffset alanlarının eklenmesi ve Bölüm 1.3'te UTC kısaltmasının eklenmesi Tablo 19'da CustomDefined alanının boyutunun düzeltilmesi Bölüm 7.6.3'te geçerli NameLength değerleri aralığının düzeltilmesi Bölüm 7.4'te Zaman Damgası ve 10msIncrement alanlarının düzeltilmesi ve netleştirilmesi Bölüm 3.3'te Null Parametreler yapısının netleştirilmesi Bölüm 6.3.4.2'de NoFatChain alanının değerlerinin anlamını açıklama Bölüm 6.2.3'teki DataLength alanının değerlerinin anlamını açıklama Bölüm 3.1.13.2'deki VolumeDirty alanının netleştirilmesi ve Bölüm 8.1'de önerilen yazma sıralaması Bölüm 3.1.13.3'te MediaFailure alanının netleştirilmesi |
01 Ekim 2008 | Temel Belirtim'in aşağıdaki değişiklikleri içeren üçüncü sürümü: Alan açıklamalarına 'OLMALI,' 'GEREKİR' ve 'OLABİLİR' eklenmesi Tablo 2 Bölüm 1.3'te UTC tanımının eklenmesi TexFAT belirtimi belgesiyle uyumlu olduğundan emin olmak için 1.5 bölümleri değiştirildi. Bölüm 6.2'de Dizin Girdilerinin düzenini yalnızca Microsoft'un tanımlayabileceği kısıtlama açıklandı DataLength sıfırsa ve NoFatChain Bölüm 6.3.5 ve Bölüm 6.4.3 olarak ayarlandıysa FirstCluster Alanının sıfır olması gerektiğini açıklama eklendi Bölüm 7.4'te geçerli dosya dizini girdileri için netleştirilmiş gereksinimler Bölüm 7.7'ye benzersiz dosya ve dizin adları gereksinimi eklendi Bölüm 7.7.3'ün sonuna ASCII için uygulama notu eklendi |
01 Ocak 2009 | Temel Belirtim'in aşağıdaki değişiklikleri içeren dördüncü sürümü: Windows CE Erişim Denetimi girdilerine yönelik referanslar kaldırıldı Bölüm 7.2.5.1'e, tam bir büyük harf tablosu gereksinimini açıkça belirten bir açıklama eklendi. |
02 Eylül 2009 | Temel Belirtim'in aşağıdaki değişiklikleri içeren beşinci sürümü: Daha iyi PDF dönüşümüne izin vermek için belge biçimlendirme değişiklikleri |
24 Şubat 2010 | Temel Belirtim'in aşağıdaki değişiklikleri içeren altıncı sürümü: Düzeltilen yanlış deyim: Bölüm 6.3.5 ve Bölüm 6.4.3'teki "DataLength sıfır ve NoFatChain ayarlandıysa FirstCluster Alanı sıfır olmalıdır" ifadesi, "NoFatChain biti 1 ise, FirstCluster, küme yığınında geçerli bir kümeye işaret etmelidir" şeklinde değiştirilmiştir. Bu açıklama, NoFatChain biti ayarlandığında geçerli bir ayrımı olması gerektiğini netleştirir. "NoFatChain biti 1 ise DataLength sıfır olmamalıdır. FirstCluster alanı sıfırsa, NoFatChain biti ayarlanırsa geçerli ayırma olması gerektiğini netleştirmek için DataLength de sıfır olmalıdır", Bölüm 6.3.6 ve Bölüm 6.4.4 olmalıdır. Telif hakkı bildirimi 2010'a güncelleştirildi |
26 Ağustos 2019 | Aşağıdaki değişiklikleri içeren Temel Belirtim'in yedinci sürümü: Belirtim ile ilgili olarak güncelleştirilmiş yasal koşullar, örneğin: Microsoft Gizli bildiriminin kaldırılması Microsoft Corporation Teknik Belge Lisans Sözleşmesi'nin kaldırılması bölümü Telif hakkı bildirimi 2019'a güncelleştirildi |