加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 硬盘百科 > 文件系统

exFAT 文件系统规范

时间:2025-11-28 18:36:19  来源:  作者:

1.1 设计目标

exFAT 文件系统有三个中心设计目标(请参阅下面的列表)。d8t硬盘123

  1. 保留基于 FAT 的文件系统的简单性。d8t硬盘123

    基于 FAT 的文件系统的两个优势是它们的相对简单性和易于实现。 在前任的精神中,实施者应该发现 exFAT 相对简单易行。d8t硬盘123

  2. 启用非常大的文件和存储设备。d8t硬盘123

    exFAT 文件系统使用 64 位来描述文件大小,从而启用依赖于非常大文件的应用程序。 exFAT 文件系统还允许群集大小达 32MB,从而有效地启用非常大的存储设备。d8t硬盘123

  3. 整合扩展性,实现未来创新。d8t硬盘123

    exFAT 文件系统将扩展性纳入其设计,使文件系统能够跟上存储和使用情况变化的步伐。d8t硬盘123

1.2 特定术语

在此规范的上下文中,某些术语(见 表 1)对 exFAT 文件系统的设计和实现具有特定意义。d8t硬盘123

表 1 定义具有非常具体含义的术语d8t硬盘123

术语 定义
此规范使用术语“应”来描述强制行为。
应该 此规范使用术语“should”来描述它强烈建议的行为,但不强制行为。
五月 此规范使用术语“may”来描述可选行为。
命令的 此术语描述实现应修改的字段或结构,并解释为此规范所描述的字段或结构。
自选 此术语描述实现可能或可能不支持的字段或结构。 如果实现支持给定的可选字段或结构,应修改并按此规范所述解释字段或结构。
定义 此术语描述实现可根据需要修改的字段或结构内容(即在设置周围字段或结构时明确为零),不得解释为保留任何特定含义。
保留

此术语介绍实现的字段或结构内容:d8t硬盘123

  1. 应初始化为零,不应用于任何目的d8t硬盘123

  2. 不应解释,除非计算校验和d8t硬盘123

  3. 应保留修改周围字段或结构的作d8t硬盘123

1.3 常见首字母缩略词全文

此规范在个人计算机行业使用常见用途的首字母缩略词(请参阅 表 2)。d8t硬盘123

表 2 常见首字母缩略词全文d8t硬盘123

首字母缩略词 全文
ASCII ASCII(American Standard Code for Information Interchange)
BIOS 基本输入输出系统
CPU 中央处理单元
exFAT 可扩展文件分配表
脂肪 文件分配表
FAT12 文件分配表,12 位群集索引
FAT16 文件分配表,16 位群集索引
FAT32 文件分配表,32 位群集索引
GPT GUID 分区表
GUID 全局唯一标识符(请参阅 第 10.1 节
INT 中断
MBR 主启动记录
texFAT 事务安全的 exFAT
UTC 协调世界时

1.4 默认字段和结构限定符

此规范中的字段和结构具有以下限定符(请参阅下面的列表),除非另有说明。d8t硬盘123

  1. 未签名d8t硬盘123

  2. 使用十进制表示法来描述未指出的值;此规范使用后修复字母“h”来表示十六进制数字,并将 GUID 括在大括号中d8t硬盘123

  3. 采用 little-endian 格式d8t硬盘123

  4. 不需要字符串的 null 终止字符d8t硬盘123

1.5 Windows CE 和 TexFAT

TexFAT 是 exFAT 的扩展,可在基本文件系统之上添加事务安全的作语义。 TexFAT 由 Windows CE 使用。 TexFAT 需要使用两个 FAT 和分配位图,以便在事务中使用。 它还定义了多个其他结构,包括填充描述符和安全描述符。d8t硬盘123

2 卷结构

卷是存储和检索用户数据所需的所有文件系统结构和数据空间集。 所有 exFAT 卷都包含四个区域(请参阅 表 3)。d8t硬盘123

表 3 卷结构d8t硬盘123

子区域名称

偏移量d8t硬盘123

(部门)d8t硬盘123

大小d8t硬盘123

(部门)d8t硬盘123

注释
主启动区域      
主启动扇区 0 1 此子区域是必需的,第 3.1 节 定义其内容。
主要扩展启动扇区 1 8 此子区域是必需的,第 3.2 节)定义其内容。
主 OEM 参数 9 1 此子区域是必需的,第 3.3 节 定义其内容。
主保留 10 1 此子区域是必需的,并且保留其内容。
主启动校验和 11 1 此子区域是必需的,第 3.4 节 定义其内容。
备份启动区域      
备份启动扇区 12 1 此子区域是必需的,第 3.1 节 定义其内容。
备份扩展启动扇区 13 8 此子区域是必需的,第 3.2 节 定义其内容。
备份 OEM 参数 21 1 此子区域是必需的,第 3.3 节 定义其内容。
备份保留 22 1 此子区域是必需的,并且保留其内容。
备份启动校验和 23 1 此子区域是必需的,第 3.4 节 定义其内容。
FAT 区域      
FAT 对齐方式 二十四 FatOffset – 24

此子区域是必需的,并且其内容(如果有)未定义。d8t硬盘123

注意:主启动扇区和备份启动扇区均包含 FatOffset 字段。d8t硬盘123

初次工厂验收测试 (FAT) FatOffset FatLength

此子区域是必需的,第 4.1 节 定义其内容。d8t硬盘123

注意:主和备份启动扇区均包含 FatOffset 和 FatLength 字段。d8t硬盘123

第二个 FAT FatOffset + FatLength FatLength * (NumberOfFats – 1)

此子区域是必需的,第 4.1 节 定义其内容(如果有)。d8t硬盘123

注意:主和备份启动扇区均包含 FatOffset、FatLength 和 NumberOfFats 字段。 NumberOfFats 字段只能保存值 1 和 2。d8t硬盘123

数据区域      
群集堆对齐 FatOffset + (FatLength * NumberOfFats) ClusterHeapOffset – (FatOffset + FatLength * NumberOfFats)

此子区域是必需的,并且其内容(如果有)未定义。d8t硬盘123

注意:Main 和 Backup Boot 扇区均包含 FatOffset、FatLength、NumberOfFats 和 ClusterHeapOffset 字段。 NumberOfFats 字段的有效值为 1 和 2。d8t硬盘123

群集堆 集群堆偏移 ClusterCount × 2SectorsPerClusterShift

此子区域是必需的,第 5.1 节 定义其内容。d8t硬盘123

注意:Main 和 Backup Boot Sectors 都包含 ClusterHeapOffset、ClusterCount 和 SectorsPerClusterShift 字段。d8t硬盘123

多余的空间 ClusterHeapOffset + ClusterCount * 2SectorsPerClusterShift VolumeLength – (ClusterHeapOffset + ClusterCount * 2SectorsPerClusterShift

此子区域是必需的,并且其内容(如果有)未定义。d8t硬盘123

注意:主和备份启动扇区都包含 ClusterHeapOffset、ClusterCount、SectorsPerClusterShift 和 VolumeLength 字段。d8t硬盘123

3 个主要和备份启动区域

主启动区域提供所有必要的引导带式指令、标识信息和文件系统参数,使实现能够执行以下作:d8t硬盘123

  1. 从 exFAT 卷启动计算机系统。
  2. 将卷上的文件系统标识为 exFAT。
  3. 发现 exFAT 文件系统结构的位置。

备份启动区域是主启动区域的备份。 当主启动区域处于不一致状态时,它有助于恢复 exFAT 卷。 除非在不频繁的情况下(如更新启动带式指令),否则实现不应修改备份启动区域的内容。d8t硬盘123

3.1 主和备份启动扇区子区域

主启动扇区包含用于从 exFAT 卷和基本 exFAT 参数进行启动绑带的代码,这些参数描述了卷结构(请参阅 表 4)。 BIOS、MBR 或其他引导带代理可以检查此扇区,并可以加载和执行其中包含的任何启动带式指令。d8t硬盘123

备份启动扇区是主启动扇区的备份,具有相同的结构(请参阅 表 4)。 备份启动扇区可能有助于恢复作;但是,实现应将 VolumeFlags 和 PercentInUse 字段的内容视为过时。d8t硬盘123

在使用主启动扇区或备份启动扇区的内容之前,实现应通过验证各自的启动校验和并确保其所有字段都在其有效值范围内来验证其内容。d8t硬盘123

虽然初始格式作将初始化 Main 和 Backup Boot 扇区的内容,但实现可以根据需要更新这些扇区(并且还应根据需要更新各自的启动校验和)。 但是,实现可以在不更新其各自的启动校验和的情况下更新 VolumeFlags 或 PercentInUse 字段(校验和专门排除这两个字段)。d8t硬盘123

表 4 主和备份启动扇区结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
JumpBoot 0 3 此字段是必需的,第 3.1.1 节 定义其内容。
文件系统名称 3 8 此字段是必需的,第 3.1.2 节 定义其内容。
MustBeZero 11 53 此字段是必需的,第 3.1.3 节 定义其内容。
PartitionOffset 64 8 此字段是必需的,第 3.1.4 节 定义其内容。
体积长度 72 8 此字段是必需的,第 3.1.5 节 定义其内容。
FatOffset 80 4 此字段是必需的,第 3.1.6 节 定义其内容。
FatLength 84 4 此字段是必需的,第 3.1.7 节 定义其内容。
集群堆偏移 88 4 此字段是必需的,第 3.1.8 节 定义其内容。
ClusterCount 92 4 此字段是必需的,第 3.1.9 节 定义其内容。
FirstClusterOfRootDirectory 96 4 此字段是必需的,第 3.1.10 节 定义其内容。
VolumeSerialNumber (卷序列号) 100 4 此字段是必需的,第 3.1.11 节 定义其内容。
文件系统修订 104 2 此字段是必需的,第 3.1.12 节 定义其内容。
VolumeFlags 106 2 此字段是必需的,第 3.1.13 节 定义其内容。
BytesPerSectorShift (每扇区字节移位) 108 1 此字段是必需的,第 3.1.14 节 定义其内容。
SectorsPerClusterShift 109 1 此字段是必需的,第 3.1.15 节 定义其内容。
NumberOfFats 110 1 此字段是必需的,第 3.1.16 节 定义其内容。
DriveSelect 111 1 此字段是必需的,第 3.1.17 节 定义其内容。
使用百分比 112 1 此字段是必需的,第 3.1.18 节 定义其内容。
保留 113 7 此字段是必需的,并且保留其内容。
启动代码 120 390 此字段是必需的,第 3.1.19 节 定义其内容。
BootSignature 510 2 此字段是必需的,第 3.1.20 节 定义其内容。
ExcessSpace 512 2BytesPerSectorShift – 512

此字段是必需的,并且其内容(如果有)未定义。d8t硬盘123

注意:主和备份启动扇区都包含 BytesPerSectorShift 字段。d8t硬盘123

3.1.1 JumpBoot 字段

JumpBoot 字段应包含个人计算机中常见的 CPU 的跳转指令,执行时,CPU 会“跳转”以在 BootCode 字段中执行启动带式指令。d8t硬盘123

此字段的有效值为(按低序字节到高阶字节的顺序)EBh 76h 90h。d8t硬盘123

3.1.2 FileSystemName 字段

FileSystemName 字段应包含卷上的文件系统的名称。d8t硬盘123

此字段的有效值为 ASCII 字符“EXFAT”,其中包括三个尾随空格。d8t硬盘123

3.1.3 MustBeZero 字段

MustBeZero 字段应与打包的 BIOS 参数块在 FAT12/16/32 卷上使用的字节范围直接对应。d8t硬盘123

此字段的有效值为 0,这有助于防止 FAT12/16/32 实现错误地装载 exFAT 卷。d8t硬盘123

3.1.4 PartitionOffset 字段

PartitionOffset 字段应描述承载给定 exFAT 卷的分区的媒体相对扇区偏移量。 此字段有助于在个人计算机上使用扩展 INT 13h 从卷启动带。d8t硬盘123

此字段的所有可能值都有效;但是,值 0 指示实现应忽略此字段。d8t硬盘123

3.1.5 VolumeLength 字段

VolumeLength 字段应描述扇区中给定 exFAT 卷的大小。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 220/ 2BytesPerSectorShift,这可确保最小卷不超过 1MBd8t硬盘123

  • 最多 264- 1,此字段可以描述的最大值。d8t硬盘123

    但是,如果多余的空间子区域的大小为 0,则此字段的最大值为 ClusterHeapOffset + (232- 11) *2SectorsPerClusterShiftd8t硬盘123

3.1.6 FatOffset 字段

FatOffset 字段应描述第一个 FAT 的相对于卷的扇区偏移量。 此字段使实现能够将第一个 FAT 与基础存储介质的特征保持一致。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 24 个,这占主启动和备份启动区域消耗的扇区
  • 大多数 ClusterHeapOffset - (FatLength * NumberOfFats),它占群集堆消耗的扇区

3.1.7 FatLength 字段

FatLength 字段应描述每个 FAT 表的扇区长度(该卷最多可以包含两个 FAT)。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 (ClusterCount + 2) * 22/ 2BytesPerSectorShift向上舍入到最接近的整数,这可确保每个 FAT 有足够的空间来描述群集堆中的所有群集
  • 最多 (ClusterHeapOffset - FatOffset) / NumberOfFats 向下舍入到最接近的整数,这可确保群集堆之前存在 FAT

此字段可能包含超出其下限的值(如上所述),以使第二个 FAT(如果存在)也与基础存储介质的特征保持一致。 超出 FAT 本身需要的内容(如果有)是未定义的。d8t硬盘123

3.1.8 ClusterHeapOffset 字段

ClusterHeapOffset 字段应描述群集堆的卷相对扇区偏移量。 此字段使实现能够将群集堆与基础存储介质的特征保持一致。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 FatOffset + FatLength * NumberOfFats,以考虑上述所有区域消耗的扇区
  • 最多 232- 1 或 VolumeLength - (ClusterCount * 2SectorsPerClusterShift),无论计算少

3.1.9 ClusterCount 字段

ClusterCount 字段应描述群集堆包含的群集数。d8t硬盘123

此字段的有效值应小于以下各项:d8t硬盘123

  • (VolumeLength - ClusterHeapOffset) / 2SectorsPerClusterShift向下舍入到最接近的整数,这正是分类堆的开头和卷末尾之间的分类数
  • 232- 11,这是 FAT 可以描述的最大群集数

ClusterCount 字段的值确定 FAT 的最小大小。 为避免非常大的 FAT,实现可以通过增加群集大小(通过 SectorsPerClusterShift 字段)来控制群集堆中的群集数。 此规范建议在群集堆中不超过 224 个- 2 个群集。 但是,实现应能够处理群集堆中最多 2 个32 个- 11 个群集的卷。d8t硬盘123

3.1.10 FirstClusterOfRootDirectory 字段

FirstClusterOfRootDirectory 字段应包含根目录的第一个群集的群集索引。 根目录应始终使用活动 FAT 中的群集链进行描述,就像根目录用目录条目描述时,其 GeneralPrimaryFlags 字段的 NoFatChain 标志是零一样(请参阅第 6.3.4.2 节)。 根目录的数据长度应始终通过加载群集链来确定。 实现应在分配位图和上例表使用群集后,将根目录的第一个群集放在第一个非坏群集中。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 2,群集堆中第一个群集的索引
  • 群集堆中最后一个群集的索引最多为 ClusterCount + 1

3.1.11 VolumeSerialNumber 字段

VolumeSerialNumber 字段应包含唯一的序列号。 这有助于实现区分不同的 exFAT 卷。 实现应结合 exFAT 卷的格式设置日期和时间来生成序列号。 合并日期和时间形成序列号的机制特定于实现。d8t硬盘123

此字段的所有可能值都有效。d8t硬盘123

3.1.12 文件系统修订字段 (FileSystemRevision Field)

FileSystemRevision 字段应描述给定卷上 exFAT 结构的主要和次要修订号。d8t硬盘123

高阶字节是主要修订号,低序字节是次要修订号。 例如,如果高阶字节包含值 01h,如果低序字节包含值 05h,则 FileSystemRevision 字段描述修订号 1.05。 同样,如果高阶字节包含值 0Ah,如果低序字节包含值 0Fh,则 FileSystemRevision 字段描述修订号 10.15。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 对于低序字节,至少为 0,对于高阶字节,至少为 1
  • 对于低序字节,最多为 99,对于高阶字节,为 99

此规范描述的 exFAT 的修订号为 1.00。 此规范的实现应装载任何具有主要修订号 1 的 exFAT 卷,并且不得将任何 exFAT 卷装载到任何其他主要修订号。 实现应遵循次要修订号,不得执行作或创建给定次要修订号相应规范中未描述的任何文件系统结构。d8t硬盘123

3.1.13 VolumeFlags 字段

VolumeFlags 字段应包含指示 exFAT 卷上各种文件系统结构状态的标志(请参阅 表 5)。d8t硬盘123

在计算其各自的主启动或备份启动区域校验和时,实现不应包含此字段。 引用备份启动扇区时,实现应将此字段视为过时。d8t硬盘123

表 5 VolumeFlags 字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
ActiveFat 0 1 此字段是必需的,第 3.1.13.1 节 定义其内容。
VolumeDirty 1 1 此字段是必需的,第 3.1.13.2 节 定义其内容。
MediaFailure 2 1 此字段是必需的,第 3.1.13.3 节 定义其内容。
ClearToZero 3 1 此字段是必需的,第 3.1.13.4 节 定义其内容。
保留 4 12 此字段是必需的,并且保留其内容。
3.1.13.1 ActiveFat 字段

ActiveFat 字段应描述哪些 FAT 和分配位图处于活动状态(并且应使用实现),如下所示:d8t硬盘123

  • 0,这意味着第一个 FAT 和第一个分配位图处于活动状态
  • 1,这意味着第二个 FAT 和第二个分配位图处于活动状态,并且仅当 NumberOfFats 字段包含值 2 时,才可能

实现应将非活动 FAT 和分配位图视为过时。 只有 TexFAT 感知实现才能切换活动 FAT 和分配位图(请参阅 第 7.1 节)。d8t硬盘123

3.1.13.2 VolumeDirty 字段

VolumeDirty 字段应描述卷是否脏,如下所示:d8t硬盘123

  • 0,这意味着卷可能处于一致状态
  • 1,这意味着卷可能处于不一致状态

在遇到不一致的文件系统元数据不一致时,实现应将此字段的值设置为 1。 如果装载卷时,此字段的值为 1,则只有解析文件系统元数据不一致性的实现才能将此字段的值清除为 0。 此类实现只有在确保文件系统处于一致状态后才能将此字段的值清除为 0。d8t硬盘123

如果装载卷时,此字段的值为 0,则实现应在更新文件系统元数据之前将此字段设置为 1,然后将此字段清除为 0,类似于 第 8.1 节 1中所述的建议写入顺序。d8t硬盘123

3.1.13.3 媒体故障字段

MediaFailure 字段应描述实现是否已发现媒体故障,如下所示:d8t硬盘123

  • 0,这意味着宿主媒体未报告故障,或者 FAT 中已记录任何已知故障为“错误”群集
  • 1,这意味着宿主媒体报告了失败(即读取或写入作失败)

实现应在以下情况下将此字段设置为 1:d8t硬盘123

  1. 托管媒体无法尝试访问卷中的任何区域
  2. 实现已用尽访问重试算法(如果有)

如果装载卷时,此字段的值为 1,则扫描整个卷的媒体故障的实现,并将所有故障记录为 FAT 中的“坏”群集(否则解析媒体故障)可能会将此字段的值清除为 0。d8t硬盘123

3.1.13.4 ClearToZero 字段

ClearToZero 字段在此规范中没有意义。d8t硬盘123

此字段的有效值为:d8t硬盘123

  • 0,没有任何特定含义
  • 1,这意味着实现应在修改任何文件系统结构、目录或文件之前将此字段清除为 0

3.1.14 BytesPerSectorShift 字段

BytesPerSectorShift 字段应描述每个扇区表示为日志2(N),其中 N 是每个扇区字节数。 例如,对于每个扇区 512 字节,此字段的值为 9。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 9 个(扇区大小为 512 字节),这是 exFAT 卷的最小扇区
  • 最多 12 个(扇区大小为 4096 字节),这是个人计算机中常见的 CPU 内存页大小

3.1.15 SectorsPerClusterShift 字段

SectorsPerClusterShift 字段应描述每个群集表示为日志2(N)的扇区,其中 N 是每个群集的扇区数。 例如,对于每个群集 8 个扇区,此字段的值为 3。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 0 个(每个群集 1 个扇区),这是可能的最小群集
  • 最多 25 - BytesPerSectorShift,其计算结果为 32MB 的群集大小

3.1.16 NumberOfFats 字段

NumberOfFats 字段应描述卷包含的 FAT 数和分配位图数。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 1,它指示卷仅包含第一个 FAT 和第一个分配位图
  • 2,它指示卷包含第一个 FAT、第二个 FAT、第一个分配位图和第二个分配位图;此值仅适用于 TexFAT 卷

3.1.17 DriveSelect 字段

DriveSelect 字段应包含扩展的 INT 13h 驱动器号,这有助于在个人计算机上使用扩展的 INT 13h 从此卷启动绑带。d8t硬盘123

此字段的所有可能值都有效。 以前基于 FAT 的文件系统中的类似字段经常包含值 80h。d8t硬盘123

3.1.18 PercentInUse 字段

PercentInUse 字段应描述分配的群集堆中的群集百分比。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 在 0 到 100 之间(包括 0 到 100 之间)(即群集堆中分配的群集的百分比)向下舍入到最接近的整数
  • 完全 FFh,指示群集堆中已分配群集的百分比不可用

实现应更改此字段的值,以反映群集堆中群集分配的更改,或将其更改为 FFh。d8t硬盘123

在计算其各自的主启动或备份启动区域校验和时,实现不应包含此字段。 引用备份启动扇区时,实现应将此字段视为过时。d8t硬盘123

3.1.19 BootCode 字段

BootCode 字段应包含引导带指令。 实现可以使用启动带式计算机系统所需的 CPU 指令填充此字段。 不提供启动带指令的实现应将此字段中的每个字节初始化为 F4h(个人计算机中常见的 CPU 的停止指令),作为其格式作的一部分。d8t硬盘123

3.1.20 BootSignature 字段

BootSignature 字段应描述给定扇区的意图是否为启动扇区。d8t硬盘123

此字段的有效值为 AA55h。 此字段中的任何其他值使其各自的启动扇区失效。 实现应先验证此字段的内容,然后取决于其各自的启动扇区中的其他任何字段。d8t硬盘123

3.2 主和备份扩展启动扇区子区域

主扩展启动扇区的每个扇区具有相同的结构;但是,每个扇区可以保存不同的引导带式指令(请参阅表 6)。 启动带代理(如主启动扇区中的启动带式指令、备用 BIOS 实现或嵌入式系统的固件)可能会加载这些扇区并执行它们所包含的指令。d8t硬盘123

备份扩展启动扇区是主扩展启动扇区备份,具有相同的结构(请参阅表 6 )。d8t硬盘123

在执行主或备份扩展启动扇区的说明之前,实现应通过确保每个扇区的 ExtendedBootSignature 字段包含其规定的值来验证其内容。d8t硬盘123

虽然初始格式作将初始化 Main 和 Backup 扩展启动扇区的内容,但实现可以根据需要更新这些扇区(并且还应根据需要更新各自的启动校验和)。d8t硬盘123

表 6 扩展启动扇区结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
ExtendedBootCode 0 2BytesPerSectorShift – 4

此字段是必需的,第 3.2.1 节 定义其内容。d8t硬盘123

注意:主和备份启动扇区都包含 BytesPerSectorShift 字段。d8t硬盘123

ExtendedBootSignature 2BytesPerSectorShift – 4 4

此字段是必需的,第 3.2.2 节 定义其内容。d8t硬盘123

注意:主和备份启动扇区都包含 BytesPerSectorShift 字段。d8t硬盘123

3.2.1 ExtendedBootCode 字段

ExtendedBootCode 字段应包含引导带式指令。 实现可以使用启动带式计算机系统所需的 CPU 指令填充此字段。 不提供启动带指令的实现应将此字段中的每个字节初始化为 00h,作为其格式作的一部分。d8t硬盘123

3.2.2 ExtendedBootSignature 字段

ExtendedBootSignature 字段应描述给定扇区的意图是否为扩展启动扇区。d8t硬盘123

此字段的有效值为 AA550000h。 此字段中的任何其他值使其各自的主启动或备份扩展启动扇区失效。 实现应在根据其各自的扩展启动扇区的任何其他字段之前验证此字段的内容。d8t硬盘123

3.3 主和备份 OEM 参数子区域

主 OEM 参数子区域包含十个参数结构,这些参数结构可能包含特定于制造商的信息(请参阅 表 7)。 十个参数结构中的每一个派生自泛型参数模板(请参阅 第 3.3.2 节)。 制造商可以从通用参数模板派生其自己的自定义参数结构。 此规范本身定义了两个参数结构:Null 参数(请参阅 第 3.3.3 节)和闪存参数(请参阅 第 3.3.4 节)。d8t硬盘123

备份 OEM 参数是主 OEM 参数的备份,具有相同的结构(请参阅 表 7)。d8t硬盘123

在使用主或备份 OEM 参数的内容之前,实现应通过验证各自的启动校验和来验证其内容。d8t硬盘123

制造商应使用自己的自定义参数结构(如果有)和任何其他参数结构填充 Main 和 Backup OEM 参数。 后续格式作应保留 Main 和 Backup OEM 参数的内容。d8t硬盘123

实现可以根据需要更新 Main 和 Backup OEM 参数(并且还应更新各自的启动校验和)。d8t硬盘123

表 7 OEM 参数结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
参数[0] 0 48 此字段是必需的,第 3.3.1 节 定义其内容。

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

Parameters[9] 432 48 此字段是必需的,第 3.3.1 节 定义其内容。
保留 480 2BytesPerSectorShift – 480

此字段是必需的,并且保留其内容。d8t硬盘123

注意:主和备份启动扇区都包含 BytesPerSectorShift 字段。d8t硬盘123

3.3.1 参数[0] ...Parameters[9]

此数组中的每个 Parameters 字段都包含一个参数结构,该结构派生自泛型参数模板(请参阅 第 3.3.2 节)。 任何未使用的 Parameters 字段应描述为包含 Null 参数结构(请参阅 第 3.3.3 节)。d8t硬盘123

3.3.2 泛型参数模板

泛型参数模板提供参数结构的基本定义(请参阅表 8 )。 所有参数结构都派生自此模板。 必须支持此通用参数模板。d8t硬盘123

表 8 泛型参数模板d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
ParametersGuid 0 16 此字段是必需的,第 3.3.2.1 节 定义其内容。
自定义 16 32 此字段是必需的,派生自此模板的结构定义其内容。
3.3.2.1 ParametersGuid 字段

ParametersGuid 字段应描述 GUID,该 GUID 确定给定参数结构的其余部分的布局。d8t硬盘123

此字段的所有可能值都有效;但是,制造商应使用 GUID 生成工具(如 GuidGen.exe)从此模板派生自定义参数结构时选择 GUID。d8t硬盘123

3.3.3 Null 参数

Null 参数结构派生自泛型参数模板(请参阅 第 3.3.2 节),并描述未使用的参数字段(请参阅 表 9)。 创建或更新 OEM 参数结构时,实现应使用 Null 参数结构填充未使用的 Parameters 字段。 此外,在创建或更新 OEM 参数结构时,实现应在数组末尾合并 Null 参数结构,从而将所有其他 Parameters 结构保留在 OEM 参数结构的开头。d8t硬盘123

必须支持 Null 参数结构。d8t硬盘123

表 9 Null 参数结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
ParametersGuid 0 16 此字段是必需的,第 3.3.3.1 节 定义其内容。
保留 16 32 此字段是必需的,并且保留其内容。
3.3.3.1 ParametersGuid 字段

ParametersGuid 字段应符合泛型参数模板提供的定义(请参阅 第 3.3.2.1 节)。d8t硬盘123

此字段的有效值在 GUID 表示法中为 {00000000-0000-0000-0000-000000000000}。d8t硬盘123

3.3.4 闪存参数

Flash 参数结构派生自泛型参数模板(请参阅 第 3.3.2 节),并包含闪存媒体的参数(请参阅 表 10)。 基于闪存的存储设备制造商可能会使用此参数结构填充参数字段(最好是 Parameters[0] 字段)。 实现可以使用 Flash 参数结构中的信息在读取/写入期间优化访问作,并在格式化媒体期间对齐文件系统结构。d8t硬盘123

对 Flash 参数结构的支持是可选的。d8t硬盘123

表 10 闪存参数结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
ParametersGuid 0 16 此字段是必需的,第 3.3.4.1 节 定义其内容。
擦除块大小(EraseBlockSize) 16 4 此字段是必需的,第 3.3.4.2 节 定义其内容。
页面大小 20 4 此字段是必需的,第 3.3.4.3 节 定义其内容。
SpareSectors 二十四 4 此字段是必需的,第 3.3.4.4 节 定义其内容。
随机访问时间 28 4 此字段是必需的,第 3.3.4.5 节 定义其内容。
编程时间 32 4 此字段是必需的,第 3.3.4.6 节 定义其内容。
ReadCycle 36 4 此字段是必需的,第 3.3.4.7 节 定义其内容。
WriteCycle 40 4 此字段是必需的,第 3.3.4.8 节 定义其内容。
保留 44 4 此字段是必需的,并且保留其内容。

所有 Flash Parameters 字段的所有可能值(ParametersGuid 字段除外)均有效。 但是,值 0 表示字段实际上毫无意义(实现应忽略给定字段)。d8t硬盘123

3.3.4.1 ParametersGuid 字段

ParametersGuid 字段应符合泛型参数模板中提供的定义(请参阅 第 3.3.2.1 节)。d8t硬盘123

此字段的有效值为 {0A0C7E46-3399-4021-90C8-FA6D389C4BA2}。d8t硬盘123

3.3.4.2 EraseBlockSize 字段

EraseBlockSize 字段应描述闪存媒体擦除块的大小(以字节为单位)。d8t硬盘123

3.3.4.3 PageSize 字段

PageSize 字段应描述闪存媒体页面的大小(以字节为单位)。d8t硬盘123

3.3.4.4 备用对象字段

备用部门字段应描述闪存媒体为其内部稀疏作可用的扇区的数量。d8t硬盘123

3.3.4.5 RandomAccessTime 字段

RandomAccessTime 字段应以纳秒为单位描述闪存介质的平均随机访问时间。d8t硬盘123

3.3.4.6 ProgrammingTime 字段

ProgrammingTime 字段应以纳秒为单位描述闪存媒体的平均编程时间。d8t硬盘123

3.3.4.7 ReadCycle 字段

ReadCycle 字段应以纳秒为单位描述闪存介质的平均读取周期时间。d8t硬盘123

3.3.4.8 WriteCycle 字段

WriteCycle 字段应以纳秒为单位描述平均写入周期时间。d8t硬盘123

3.4 主和备份启动校验和子区域

Main 和 Backup Boot Checksum 各包含其各自启动区域中所有其他子区域内容的四字节校验和的重复模式。 校验和计算不应在其各自的启动扇区中包含 VolumeFlags 和 PercentInUse 字段(请参阅 图 1)。 四字节校验和的重复模式从头到尾填充其各自的启动校验和子区域。d8t硬盘123

在使用主或备份启动区域中任何其他子区域的内容之前,实现应通过验证各自的启动校验和来验证其内容。d8t硬盘123

虽然初始格式作将使用重复的校验和模式填充 Main 和 Backup Boot Checksum,但实现将更新这些扇区,因为其各自的启动区域中的其他扇区的内容会发生变化。d8t硬盘123

图 1 启动校验和计算d8t硬盘123

C
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 文件分配表区域

文件分配表(FAT)区域最多可以包含两个 FAT,一个位于第一个 FAT 子区域中,另一个位于第二个 FAT 子区域中。 NumberOfFats 字段描述此区域包含的 FAT 数。 NumberOfFats 字段的有效值为 1 和 2。 因此,第一个 FAT 子区域始终包含 FAT。 如果 NumberOfFats 字段为 2,则第二个 FAT 子区域也包含 FAT。d8t硬盘123

VolumeFlags 字段的 ActiveFat 字段描述哪些 FAT 处于活动状态。 只有主启动扇区中的 VolumeFlags 字段是最新的。 实现应将不处于活动状态的 FAT 视为过时。 使用非活动 FAT 并在 FAT 之间切换是特定于实现的。d8t硬盘123

4.1 第一个和第二个 FAT 子区域

FAT 应描述群集堆中的群集链(请参阅 表 11)。 群集链是一系列群集,用于记录文件、目录和其他文件系统结构的内容。 FAT 将群集链表示为群集索引的单向链接列表。 除了前两个条目之外,FAT 中的每个条目都代表一个群集。d8t硬盘123

表 11 文件分配表结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
FatEntry[0] 0 4 此字段是必需的,第 4.1.1 节 定义其内容。
FatEntry[1] 4 4 此字段是必需的,第 4.1.2 节 定义其内容。
FatEntry[2] 8 4 此字段是必需的,第 4.1.3 节 定义其内容。

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

FatEntry[ClusterCount+1] (ClusterCount + 1) * 4 4

此字段是必需的,第 4.1.3 节 定义其内容。d8t硬盘123

ClusterCount + 1 永远不会超过 FFFFFFF6h。d8t硬盘123

注意:主和备份启动扇区均包含 ClusterCount 字段。d8t硬盘123

ExcessSpace (ClusterCount + 2) * 4 (FatLength * 2BytesPerSectorShift) – (ClusterCount + 2) * 4)

此字段是必需的,并且其内容(如果有)未定义。d8t硬盘123

注意:主和备份启动扇区均包含 ClusterCount、FatLength 和 BytesPerSectorShift 字段。d8t硬盘123

4.1.1 FatEntry[0] 字段

FatEntry[0] 字段应描述第一个字节(最低顺序字节)中的媒体类型,并将其余三个字节中包含 FFh。d8t硬盘123

媒体类型(第一个字节)应为 F8h。d8t硬盘123

4.1.2 FatEntry[1] 字段

FatEntry[1] 字段仅因历史优先级而存在,并不描述任何感兴趣的内容。d8t硬盘123

此字段的有效值为 FFFFFFFFh。 实现应将此字段初始化为其规定的值,不应将此字段用于任何目的。 实现不应解释此字段,并且应在修改周围字段的作中保留其内容。d8t硬盘123

4.1.3 FatEntry[2] ...FatEntry[ClusterCount+1] 字段

此数组中的每个 FatEntry 字段应表示群集堆中的群集。 FatEntry[2] 表示群集堆中的第一个群集,FatEntry[ClusterCount+1] 表示群集堆中的最后一个群集。d8t硬盘123

这些字段的有效值范围应为:d8t硬盘123

  • 介于 2 和 ClusterCount + 1 之间,包括指向给定群集链中的下一个 FatEntry;给定的 FatEntry 不得指向给定群集链中前面的任何 FatEntry
  • 完全是 FFFFFFF7h,它将给定 FatEntry 的相应群集标记为“bad”
  • 完全是 FFFFFFFFh,它将给定 FatEntry 的相应群集标记为群集链的最后一个群集;这是任何给定群集链的最后一个 FatEntry 的唯一有效值

5 数据区域

数据区域包含群集堆,它为文件系统结构、目录和文件提供托管空间。d8t硬盘123

5.1 群集堆子区域

群集堆的结构非常简单(请参阅 表 12):每个连续的扇区系列描述一个群集,因为 SectorsPerClusterShift 字段定义。 重要的是,群集堆的第一个分类具有索引 2,它直接对应于 FatEntry[2] 的索引。d8t硬盘123

在 exFAT 卷中,分配位图(请参阅 第 7.1.5 节)维护所有群集的分配状态记录。 这与 exFAT 的前任(FAT12、FAT16 和 FAT32)有很大区别,其中 FAT 保留了群集堆中所有群集的分配状态的记录。d8t硬盘123

表 12 群集堆结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(部门)d8t硬盘123

大小d8t硬盘123

(部门)d8t硬盘123

注释
集群[2] 集群堆偏移 2SectorsPerClusterShift

此字段是必需的,第 5.1.1 节 定义其内容。d8t硬盘123

注意:主和备份启动扇区均包含 ClusterHeapOffset 和 SectorsPerClusterShift 字段。d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

Cluster[ClusterCount+1] ClusterHeapOffset + (ClusterCount – 1) * 2SectorsPerClusterShift 2SectorsPerClusterShift

此字段是必需的,第 5.1.1 节 定义其内容。d8t硬盘123

注意:主和备份启动扇区都包含 ClusterCount、ClusterHeapOffset 和 SectorsPerClusterShift 字段。d8t硬盘123

5.1.1 群集[2] ...Cluster[ClusterCount+1] 字段

此数组中的每个群集字段都是一系列连续扇区,其大小由 SectorsPerClusterShift 字段定义。d8t硬盘123

6 目录结构

exFAT 文件系统使用目录树方法来管理群集堆中存在的文件系统结构和文件。 目录树中的父级和子目录之间存在一对多关系。d8t硬盘123

FirstClusterOfRootDirectory 字段引用的目录是目录树的根目录。 所有其他目录以单向链接的方式从根目录降序。d8t硬盘123

每个目录都包含一系列目录条目(请参阅表 13 )。d8t硬盘123

一个或多个目录条目合并到描述相关内容(例如文件系统结构、子目录或文件)的目录条目集中。d8t硬盘123

表 13 目录结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
DirectoryEntry[0] 0 32 此字段是必需的,第 6.1 节 定义其内容。

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

DirectoryEntry[N–1] (N – 1) * 32 32

此字段是必需的,第 6.1 节 定义其内容。d8t硬盘123

N,DirectoryEntry 字段的数目,是包含给定目录的群集链的大小(以字节为单位),除以 DirectoryEntry 字段的大小(32 字节)。d8t硬盘123

6.1 DirectoryEntry[0] ...DirectoryEntry[N--1]

此数组中的每个 DirectoryEntry 字段派生自 Generic DirectoryEntry 模板(请参阅 第 6.2 节)。d8t硬盘123

6.2 Generic DirectoryEntry 模板

Generic DirectoryEntry 模板提供目录项的基本定义(请参阅 表 14)。 所有目录条目结构都派生自此模板,并且只有Microsoft定义的目录条目结构有效(exFAT 没有针对制造商定义的目录条目结构的预配,但 第 7.8 节 和 第 7.9 节中定义)。 必须能够解释 Generic DirectoryEntry 模板。d8t硬盘123

表 14 泛型 DirectoryEntry 模板d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 6.2.1 节 定义其内容。
自定义 1 19 此字段是必需的,派生自此模板的结构可以定义其内容。
FirstCluster 20 4 此字段是必需的,第 6.2.2 节 定义其内容。
数据长度 二十四 8 此字段是必需的,第 6.2.3 节 定义其内容。

6.2.1 EntryType 字段

EntryType 字段具有三种用法模式,字段的值定义(请参阅下面的列表)。d8t硬盘123

  • 00h,这是目录结束标记,并适用以下条件:
    • 给定 DirectoryEntry 中的所有其他字段实际上都保留
    • 给定目录中的所有后续目录条目也是目录末尾标记
    • 目录结束标记仅在目录条目集外部有效
    • 实现可能会根据需要覆盖目录结束标记
  • 在 01h 到 7Fh 之间(包括 01h 和 7Fh)时,这是未使用目录条目的标记,并适用以下条件:
    • 给定 DirectoryEntry 中的所有其他字段实际上未定义
    • 未使用的目录条目仅在目录条目集之外有效
    • 实现可能会根据需要覆盖未使用的目录条目
    • 此值范围对应于 InUse 字段(请参阅包含值 0 的 Section 6.2.1.4
  • 在 81h 和 FFh 之间(包括常规目录条目)和以下条件适用:
    • EntryType 字段的内容(请参阅 表 15)确定 DirectoryEntry 结构的其余部分的布局
    • 此值范围(仅此值范围)在目录条目集中有效
    • 此值范围直接对应于 InUse 字段(请参阅包含值 1 的 Section 6.2.1.4

若要防止修改 InUse 字段(请参阅 第 6.2.1.4 节)错误地导致目录结束标记,值 80h 无效。d8t硬盘123

表 15 泛型 EntryType 字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
TypeCode 0 5 此字段是必需的,第 6.2.1.1 节 定义其内容。
类型重要性 5 1 此字段是必需的,第 6.2.1.2 节第 6.2.1.2 节 定义其内容。
类型类别 6 1 此字段是必需的,第 6.2.1.3 节 定义其内容。
正在使用 7 1 此字段是必需的,第 6.2.1.4 节 定义其内容。
6.2.1.1 TypeCode 字段

TypeCode 字段部分描述给定目录条目的特定类型。 此字段以及 TypeImportance 和 TypeCategory 字段(分别请参阅 Section 6.2.1.2 和 Section 6.2.1.3)唯一标识给定目录条目的类型。d8t硬盘123

此字段的所有可能值都有效,除非 TypeImportance 和 TypeCategory 字段都包含值 0;在这种情况下,此字段的值 0 无效。d8t硬盘123

6.2.1.2 TypeImportance 字段

TypeImportance 字段应描述给定目录条目的重要性。d8t硬盘123

此字段的有效值应为:d8t硬盘123

6.2.1.3 TypeCategory 字段

TypeCategory 字段应描述给定目录条目的类别。d8t硬盘123

此字段的有效值应为:d8t硬盘123

  • 0,这意味着给定的目录条目为主(请参阅 第 6.3 节
  • 1,这意味着给定的目录条目是辅助目录(请参阅 第 6.4 节
6.2.1.4 InUse 字段

InUse 字段应描述是否使用给定的目录条目。d8t硬盘123

此字段的有效值应为:d8t硬盘123

  • 0,这意味着给定的目录条目未使用;这意味着给定结构实际上是未使用的目录条目
  • 1,这意味着给定的目录条目正在使用;这意味着给定的结构是常规目录条目

6.2.2 FirstCluster 字段

FirstCluster 字段应包含与给定目录条目关联的群集堆中分配的第一个分类的索引。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 完全为 0,这意味着不存在群集分配
  • 介于 2 和 ClusterCount + 1 之间,这是有效群集索引的范围

如果群集分配与派生结构不兼容,则派生自此模板的结构可能会重新定义 FirstCluster 和 DataLength 字段。d8t硬盘123

6.2.3 DataLength 字段

DataLength 字段描述关联群集分配包含的数据的大小(以字节为单位)。d8t硬盘123

此字段的有效值范围为:d8t硬盘123

  • 至少 0;如果 FirstCluster 字段包含值 0,则此字段的唯一有效值为 0
  • 最多 ClusterCount * 2SectorsPerClusterShift* 2BytesPerSectorShift

如果派生自此模板的结构不能用于派生结构,则派生自此模板的结构可能会重新定义 FirstCluster 和 DataLength 字段。d8t硬盘123

6.3 通用主 DirectoryEntry 模板

目录条目集中的第一个目录条目应为主目录条目。 目录条目集中的所有后续目录条目(如果有)应为辅助目录条目(请参阅 第 6.4 节)。d8t硬盘123

解释通用主 DirectoryEntry 模板的功能是必需的。d8t硬盘123

所有主目录条目结构都派生自泛型主 DirectoryEntry 模板(请参阅 表 16),该模板派生自 Generic DirectoryEntry 模板(请参阅 第 6.2 节)。d8t硬盘123

表 16 通用主 DirectoryEntry 模板d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 6.3.1 节 定义其内容。
次要计数 1 1 此字段是必需的,第 6.3.2 节 定义其内容。
SetChecksum 2 2 此字段是必需的,第 6.3.3 节 定义其内容。
GeneralPrimaryFlags 4 2 此字段是必需的,第 6.3.4 节 定义其内容。
自定义 6 14 此字段是必需的,派生自此模板的结构定义其内容。
FirstCluster 20 4 此字段是必需的,第 6.3.5 节 定义其内容。
数据长度 二十四 8 此字段是必需的,第 6.3.6 节 定义其内容。

6.3.1 EntryType 字段

EntryType 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1 节)。d8t硬盘123

6.3.1.1 TypeCode 字段

TypeCode 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.1 节)。d8t硬盘123

6.3.1.2 TypeImportance 字段

TypeImportance 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.2 节)。d8t硬盘123

6.3.1.2.1 关键主目录条目

关键主目录条目包含对正确管理 exFAT 卷至关重要的信息。 只有根目录包含关键的主目录条目(文件目录条目是例外,请参阅 第 7.4 节)。d8t硬盘123

关键主目录条目的定义与主要 exFAT 修订号相关。 实现应支持所有关键主目录条目,并且只记录此规范定义的关键主目录条目结构。d8t硬盘123

6.3.1.2.2 良性主目录条目

良性主目录条目包含可用于管理 exFAT 卷的其他信息。 任何目录都可能包含良性的主目录条目。d8t硬盘123

良性主目录条目的定义与次要 exFAT 修订号相关联。 对于此规范或任何后续规范的任何良性主目录条目的支持是可选的。 无法识别的良性主目录条目将整个目录条目集呈现为无法识别(超出适用目录条目模板的定义)。d8t硬盘123

6.3.1.3 TypeCategory 字段

TypeCategory 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.3 节)。d8t硬盘123

对于此模板,此字段的有效值为 0。d8t硬盘123

6.3.1.4 InUse 字段

InUse 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.4 节)。d8t硬盘123

6.3.2 SecondaryCount 字段

SecondaryCount 字段应描述紧跟给定主目录条目的辅助目录条目数。 这些辅助目录条目以及给定的主目录条目构成目录条目集。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 0,这意味着此主目录条目是目录条目集中的唯一条目
  • 最多 255 个,这意味着接下来的 255 个目录条目和此主目录条目构成目录条目集

派生自此模板的关键主目录条目结构可能会重新定义 SecondaryCount 和 SetChecksum 字段。d8t硬盘123

6.3.3 SetChecksum 字段

SetChecksum 字段应包含给定目录条目集中所有目录条目的校验和。 但是,校验和排除此字段(请参阅 图 2)。 实现应在使用给定目录条目集中的任何其他目录条目之前验证此字段的内容是否有效。d8t硬盘123

派生自此模板的关键主目录条目结构可能会重新定义 SecondaryCount 和 SetChecksum 字段。d8t硬盘123

图 2 EntrySetChecksum 计算d8t硬盘123

C
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 GeneralPrimaryFlags 字段

GeneralPrimaryFlags 字段包含标志(请参阅 表 17)。d8t硬盘123

派生自此模板的关键主目录条目结构可能会重新定义此字段。d8t硬盘123

表 17 泛型 GeneralPrimaryFlags 字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
可能分配 0 1 此字段是必需的,第 6.3.4.1 节 定义其内容。
NoFatChain 1 1 此字段是必需的,第 6.3.4.2 节 定义其内容。
自定义 2 14 此字段是必需的,派生自此模板的结构可以定义此字段。
6.3.4.1 分配可能字段

“分配可能”字段应描述给定目录条目是否可以在群集堆中分配。d8t硬盘123

此字段的有效值应为:d8t硬盘123

  • 0,这意味着群集的关联分配是不可能的,FirstCluster 和 DataLength 字段实际上未定义(派生自此模板的结构可能重新定义这些字段)
  • 1,这意味着群集的关联分配是可能的,FirstCluster 和 DataLength 字段已定义
6.3.4.2 NoFatChain 字段

NoFatChain 字段应指示活动 FAT 是否描述给定分配的群集链。d8t硬盘123

此字段的有效值应为:d8t硬盘123

  • 0,这意味着分配群集链的相应 FAT 条目有效,实现应解释它们:如果“分配可能”字段包含值 0,或者“分配可能”字段包含值 1 且 FirstCluster 字段包含值 0,则此字段的唯一有效值为 0
  • 1,这意味着关联的分配是一个连续的群集系列;群集的相应 FAT 条目无效,实现不应解释它们;实现可以使用以下公式计算关联的分配的大小:DataLength / (2SectorsPerClusterShift* 2BytesPerSectorShift) 向上舍入到最近的整数

如果派生自此模板的关键主目录条目结构重新定义 GeneralPrimaryFlags 字段,则任何关联分配的群集链的相应 FAT 条目都有效。d8t硬盘123

6.3.5 FirstCluster 字段

FirstCluster 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.2 节)。d8t硬盘123

如果 NoFatChain 位为 1,则 FirstCluster 必须指向群集堆中的有效群集。d8t硬盘123

派生自此模板的关键主目录条目结构可能会重新定义 FirstCluster 和 DataLength 字段。 派生自此模板的其他结构只有在“分配可能”字段包含值 0 时,才能重新定义 FirstCluster 和 DataLength 字段。d8t硬盘123

6.3.6 DataLength 字段

DataLength 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.3 节)。d8t硬盘123

如果 NoFatChain 位为 1,则 DataLength 不得为零。 如果 FirstCluster 字段为零,则 DataLength 也必须为零。d8t硬盘123

派生自此模板的关键主目录条目结构可能会重新定义 FirstCluster 和 DataLength 字段。 派生自此模板的其他结构只有在“分配可能”字段包含值 0 时,才能重新定义 FirstCluster 和 DataLength 字段。d8t硬盘123

6.4 通用辅助 DirectoryEntry 模板

辅助目录条目的核心用途是提供有关目录条目集的其他信息。 必须能够解释通用辅助 DirectoryEntry 模板。d8t硬盘123

关键和良性辅助目录条目的定义与次要 exFAT 修订号相关联。 对此规范或后续规范的任何关键或良性辅助目录条目的支持是可选的。d8t硬盘123

所有辅助目录条目结构都派生自泛型辅助 DirectoryEntry 模板(请参阅 表 18),该模板派生自 Generic DirectoryEntry 模板(请参阅 第 6.2 节)。d8t硬盘123

表 18 通用辅助 DirectoryEntry 模板d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 6.4.1 节 第 6.4.1 节 定义其内容。
常规辅助标志 1 1 此字段是必需的,第 6.4.2 节 定义其内容。
自定义 2 18 此字段是必需的,派生自此模板的结构定义其内容。
FirstCluster 20 4 此字段是必需的,第 6.4.3 节 定义其内容。
数据长度 二十四 8 此字段是必需的,第 6.4.4 节 定义其内容。

6.4.1 EntryType 字段

EntryType 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1 节d8t硬盘123

6.4.1.1 TypeCode 字段

TypeCode 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.1 节)。d8t硬盘123

6.4.1.2 TypeImportance 字段

TypeImportance 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.2 节)。d8t硬盘123

6.4.1.2.1 关键辅助目录条目

关键辅助目录条目包含对正确管理其包含目录条目集至关重要的信息。 尽管对任何特定关键辅助目录条目的支持是可选的,但无法识别的关键目录条目将整个目录条目集呈现为无法识别(超出适用目录条目模板的定义)。d8t硬盘123

但是,如果目录条目集包含至少一个无法识别实现的关键辅助目录条目,则实现最多应解释目录条目集中目录项的模板,而不是与目录条目集中任何目录条目关联的数据(文件目录条目是例外) 请参阅 第 7.4 节)。d8t硬盘123

6.4.1.2.2 良性辅助目录条目

良性辅助目录条目包含其他信息,这些信息可能有助于管理其包含的目录条目集。 支持任何特定的良性辅助目录条目是可选的。 无法识别的良性辅助目录条目不会将整个目录条目集呈现为无法识别。d8t硬盘123

实现可能会忽略它无法识别的任何良性辅助条目。d8t硬盘123

6.4.1.3 TypeCategory 字段

TypeCategory 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.3 节)。d8t硬盘123

对于此模板,此字段的有效值为 1。d8t硬盘123

6.4.1.4 InUse 字段

InUse 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.1.4 节)。d8t硬盘123

6.4.2 一般次要标志字段

GeneralSecondaryFlags 字段包含标志(请参阅 表 19)。d8t硬盘123

表 19 泛型 GeneralSecondaryFlags 字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
可能分配 0 1 此字段是必需的,第 6.4.2.1 节 定义其内容。
NoFatChain 1 1 此字段是必需的,第 6.4.2.2 节 定义其内容。
自定义 2 6 此字段是必需的,派生自此模板的结构可以定义此字段。
6.4.2.1 分配可能字段

“分配可能”字段应具有与泛型主 DirectoryEntry 模板中同名字段的定义(请参阅 第 6.3.4.1 节)。d8t硬盘123

6.4.2.2 NoFatChain 字段

NoFatChain 字段应具有与泛型主 DirectoryEntry 模板中同名字段的定义(请参阅 第 6.3.4.2 节)。d8t硬盘123

6.4.3 FirstCluster 字段

FirstCluster 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.2 节)。d8t硬盘123

如果 NoFatChain 位为 1,则 FirstCluster 必须指向群集堆中的有效群集。d8t硬盘123

6.4.4 DataLength 字段

DataLength 字段应符合 Generic DirectoryEntry 模板中提供的定义(请参阅 第 6.2.3 节)。d8t硬盘123

如果 NoFatChain 位为 1,则 DataLength 不得为零。 如果 FirstCluster 字段为零,则 DataLength 也必须为零。d8t硬盘123

7 目录条目定义

exFAT 文件系统的修订版 1.00 定义了以下目录条目:d8t硬盘123

7.1 分配位图目录条目

在 exFAT 文件系统中,FAT 不描述群集的分配状态;而是分配位图。 群集堆中存在分配位图(请参阅 第 7.1.5 节),并在根目录中具有相应的关键主目录条目(请参阅 表 20)。d8t硬盘123

NumberOfFats 字段确定根目录中有效分配位图目录条目的数目。 如果 NumberOfFats 字段包含值 1,则分配位图目录条目的唯一有效数为 1。 此外,仅当第一个分配位图描述时,一个分配位图目录条目才有效(请参阅 第 7.1.2.1 节)。 如果 NumberOfFats 字段包含值 2,则分配位图目录条目的唯一有效数为 2。 此外,仅当两个分配位图目录条目描述第一个分配位图时,两个分配位图目录条目才有效,另一个条目描述了第二个分配位图。d8t硬盘123

表 20 分配位图 DirectoryEntry 结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.1.1 节 定义其内容。
BitmapFlags 1 1 此字段是必需的,第 7.1.2 节 定义其内容。
保留 2 18 此字段是必需的,并且保留其内容。
FirstCluster 20 4 此字段是必需的,第 7.1.3 节 定义其内容。
数据长度 二十四 8 此字段是必需的,第 7.1.4 节 定义其内容。

7.1.1 EntryType 字段

EntryType 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1 节)。d8t硬盘123

7.1.1.1 TypeCode 字段

TypeCode 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.1 节)。d8t硬盘123

对于分配位图目录条目,此字段的有效值为 1。d8t硬盘123

7.1.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.2 节)。d8t硬盘123

对于分配位图目录条目,此字段的有效值为 0。d8t硬盘123

7.1.1.3 TypeCategory 字段

TypeCategory 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.3 节)。d8t硬盘123

7.1.1.4 InUse 字段

InUse 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.1.4 节)。d8t硬盘123

7.1.2 BitmapFlags 字段

BitmapFlags 字段包含标志(请参阅 表 21)。d8t硬盘123

表 21 BitmapFlags 字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
BitmapIdentifier 0 1 此字段是必需的,第 7.1.2.1 节 定义其内容。
保留 1 7 此字段是必需的,并且保留其内容。
7.1.2.1 BitmapIdentifier 字段

BitmapIdentifier 字段应指示给定目录条目所描述的分配位图。 实现应将第一个分配位图与第一个 FAT 结合使用,并将第二个分配位图与第二个 FAT 结合使用。 ActiveFat 字段描述哪些 FAT 和分配位图处于活动状态。d8t硬盘123

此字段的有效值应为:d8t硬盘123

  • 0,这意味着给定的目录条目描述了第一个分配位图
  • 1,这意味着给定的目录条目描述了第二个分配位图,并且仅在 NumberOfFats 包含值 2 时才可能

7.1.3 FirstCluster 字段

FirstCluster 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.5 节)。d8t硬盘123

此字段包含群集链的第一个群集的索引,如 FAT 中所述,该索引承载分配位图。d8t硬盘123

7.1.4 DataLength 字段

DataCluster 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.6 节)。d8t硬盘123

7.1.5 分配位图

分配位图记录群集堆中的群集的分配状态。 分配位图中的每个位都指示其相应的群集是否可用于分配。d8t硬盘123

分配位图表示从最低到最高索引的群集(请参阅表 22 )。 出于历史原因,第一个群集具有索引 2。d8t硬盘123

 注意d8t硬盘123

位图中的第一位是第一个字节的最低顺序位。d8t硬盘123

表 22 分配位图结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
BitmapEntry[2] 0 1 此字段是必需的,第 7.1.5.1 节第 7.1.5.1 节 定义其内容。

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

BitmapEntry[ClusterCount+1] ClusterCount - 1 1

此字段是必需的,第 7.1.5.1 节 定义其内容。d8t硬盘123

注意:主和备份启动扇区均包含 ClusterCount 字段。d8t硬盘123

保留 ClusterCount (DataLength * 8) - ClusterCount

此字段是必需的,并且保留其内容(如果有)。d8t硬盘123

注意:主和备份启动扇区均包含 ClusterCount 字段。d8t硬盘123

7.1.5.1 BitmapEntry[2] ...BitmapEntry[ClusterCount+1] 字段

此数组中的每个 BitmapEntry 字段都表示群集堆中的分类。 BitmapEntry[2] 表示群集堆中的第一个分类,BitmapEntry[ClusterCount+1] 表示群集堆中的最后一个分类。d8t硬盘123

这些字段的有效值应为:d8t硬盘123

  • 0,其中将相应的群集描述为可用于分配
  • 1,它描述相应的群集不能用于分配(群集分配可能已使用相应的群集,或者活动 FAT 可能会将相应的群集描述为错误的群集)

7.2 大写表目录条目

Up-case 表定义从小写字符到大写字符的转换。 这一点很重要,因为使用 Unicode 字符和 exFAT 文件系统的文件名目录条目(请参阅第 7.7 节)不区分大小写和保留大小写。 群集堆中存在案例表(请参阅 第 7.2.5 节),并在根目录中具有相应的关键主目录条目(请参阅 表 23)。 Up-case Table 目录条目的有效数目为 1。d8t硬盘123

由于 Up-case Table 与文件名之间的关系,实现不应修改 Up-case Table,只是由于格式作的结果。d8t硬盘123

表 23 Up-case Table DirectoryEntry 结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.2.1 节 定义其内容。
Reserved1 1 3 此字段是必需的,并且保留其内容。
TableChecksum 4 4 此字段是必需的,第 7.2.2 节 定义其内容。
Reserved2 8 12 此字段是必需的,并且保留其内容。
FirstCluster 20 4 此字段是必需的,第 7.2.3 节 定义其内容。
数据长度 二十四 8 此字段是必需的,第 7.2.4 节 定义其内容。

7.2.1 EntryType 字段

EntryType 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1 节)。d8t硬盘123

7.2.1.1 TypeCode 字段

TypeCode 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.1 节)。d8t硬盘123

对于 Up-case Table 目录条目,此字段的有效值为 2。d8t硬盘123

7.2.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.2 节)。d8t硬盘123

对于 Up-case Table 目录条目,此字段的有效值为 0。d8t硬盘123

7.2.1.3 TypeCategory 字段

TypeCategory 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.3 节)。d8t硬盘123

7.2.1.4 InUse 字段

InUse 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.1.4 节)。d8t硬盘123

7.2.2 TableChecksum 字段

TableChecksum 字段包含 Up-case Table 的校验和(FirstCluster 和 DataLength 字段描述)。 实现应在使用 Up-case Table 之前验证此字段的内容是否有效。d8t硬盘123

图 3 TableChecksum 计算d8t硬盘123

C
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 FirstCluster 字段

FirstCluster 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.5 节)。d8t硬盘123

此字段包含群集链的第一个群集的索引,如 FAT 中所述,该索引承载 Up-case 表。d8t硬盘123

7.2.4 DataLength 字段

DataCluster 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.6 节)。d8t硬盘123

7.2.5 大写表

大写表是一系列 Unicode 字符映射。 字符映射由一个 2 字节字段组成,上写表中的字段索引表示要上写的 Unicode 字符,以及表示上写 Unicode 字符的 2 字节字段。d8t硬盘123

前 128 个 Unicode 字符具有强制映射(请参阅表 24 )。 对于前 128 个 Unicode 字符中的任何一个,具有任何其他字符映射的上写表无效。d8t硬盘123

仅支持强制映射范围中的字符的实现可能会忽略上写表其余部分的映射。 此类实现仅在创建或重命名文件时使用强制映射范围中的字符(通过文件名目录条目,请参阅 第 7.7 节)。 对现有文件名进行大小写时,此类实现不得从非强制映射范围中向上写字符,但应将它们保留在生成的大写文件名中(这是部分向上大小写)。 比较文件名时,此类实现应仅将与非强制映射范围中的 Unicode 字符进行比较的名称视为等效的文件名。 虽然此类文件名可能只是等效的,但此类实现无法确保完全大小写的文件名不会与比较中的名称相冲突。d8t硬盘123

表 24 必需前 128 个例程表条目d8t硬盘123

表索引 + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7
0000h 0000h 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

(注意:具有非标识上例映射的条目加粗)d8t硬盘123

格式化卷时,实现可以使用标识映射压缩以压缩格式生成大写表,因为 Unicode 字符空间的大部分没有大小写的概念(这意味着“小写”和“大写”字符是等效的)。 实现通过表示一系列标识映射来压缩大小写表,其值 FFFFh 后跟标识映射的数目。d8t硬盘123

例如,实现可能表示前 100 个 (64h) 字符映射,其中包含压缩大小写表的以下 8 个条目:d8t硬盘123

FFFFh, 0061h, 0041h, 0042h, 0043hd8t硬盘123

前两个条目表示前 97 个字符(从 0000h 到 0060h)具有标识映射。 后续字符 0061h 到 0063h 分别映射到字符 0041h 到 0043h。d8t硬盘123

在格式化卷时提供压缩大小写表的功能是可选的。 但是,必须解释未压缩表和压缩大小写表的功能。 TableChecksum 字段的值始终符合卷上存在大小写表的方式,该表可能采用压缩或未压缩格式。d8t硬盘123

格式化卷时,实现应以压缩格式记录建议的事例表(见 表 25),其中 TableChecksum 字段的值为 E619D30Dh。d8t硬盘123

如果实现定义自己的大小写表(压缩或未压缩),则该表应涵盖完整的 Unicode 字符范围(从字符代码 0000h 到 FFFFh(含 FFFFh)。d8t硬盘123

表 25 建议采用压缩格式的表d8t硬盘123

原始偏移量 + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7
0000h 0000h 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 0083h 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 0160h 0160h 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 0224 h 0224 h 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 0300h(凌晨3点) 0301h 0302h 0303h 0304h 0305h 0306h 0307h
0308h 0308h 0309h 030Ah 030Bh 030Ch 030Dh 030Eh 030Fh
0310h 03时10分 0311h 0312h 0313h 0314h 0315h 0316h 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 0375h 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 0512h 0512h 0514h 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 05:47小时
0548h 0548h 0549h 054Ah 054Bh 054Ch 054Dh 054Eh 054Fh
0550h 0550h 0551h 0552h 0553h 0554h 0555h 0556h 0557h
0558h 0558h 05:59时 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 05:47小时
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 2001h 2002h 2003h
0810h 2004h 2005h 2006h 2007h 2008h 2009h 200Ah 200Bh
0818h 200Ch 200迪拉姆 200Eh 200Fh 2010h 2011h 2012h 2013h
0820h 2014h 2015h 2016h 2017h 2018h 2019h 201Ah 201Bh
0828h 201Ch 201Dh 201Eh 201Fh 2020h 2021h 2022h 2023h
0830h 2024h 2025h 2026h 2027h 2028h 2029h 202Ah 202Bh
0838h 202Ch 202Dh 202Eh 202Fh 20:30 2031h 2032h 2033h
0840h 2034h 20点35分 2036h 2037h 2038h 2039h 203Ah 203Bh
0848h 203Ch 203Dh 203Eh 203Fh 20点40分 2041h 2042h 2043h
0850h 20点44分 2045h 2046h 2047h 2048h 2049h 204Ah 204Bh
0858h 204Ch 204Dh 204Eh 204Fh 2050h时 2051h 2052h 2053h
0860h 2054h 2055h 2056h 2057h 2058h 2059h 205Ah 205Bh
0868h 205Ch 205Dh 205Eh 205Fh 2060h 2061h 2062h 2063h
0870h 2064h 2065h 2066h 2067h 2068h 2069h 206Ah 206Bh
0878h 206Ch 206Dh 206Eh 206Fh 2070h 2071h 2072h 2073h
0880h 2074h 2075h 2076h 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 2096小时 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 20BBh
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 20DBh
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 21:04时 21时05分 2106h 2107h 2108h 2109h 210Ah 210Bh
0918h 210Ch 210Dh 210Eh 210Fh 2110h 2111h 2112h 2113h
0920h 2114h 21:15 2116h 2117h 2118h 21时19分 211Ah 211Bh
0928h 211Ch 211Dh 211Eh 211Fh 2120h 2121h 2122h 2123h
0930h 2124h 2125h 2126h 2127h 2128h 2129h 212Ah 212Bh
0938h 212Ch 212Dh 212Eh 212华氏度 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 2160小时 2161h 2162h 2163h
0970h 2164h 2165h 2166h 2167h 2168h 2169h 216Ah 216Bh
0978h 216Ch 216Dh 216Eh 216Fh 2160小时 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 卷标签目录条目

卷标签是一个 Unicode 字符串,使最终用户能够区分其存储卷。 在 exFAT 文件系统中,卷标签作为根目录中的关键主目录条目存在(请参阅 表 26)。 卷标签目录条目的有效数目从 0 到 1 不等。d8t硬盘123

表 26 卷标签 DirectoryEntry 结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.3.1 节 定义其内容。
字符统计 1 1 此字段是必需的,第 7.3.2 节 定义其内容。
VolumeLabel 2 22 此字段是必需的,第 7.3.3 节 定义其内容。
保留 二十四 8 此字段是必需的,并且保留其内容。

7.3.1 EntryType 字段

EntryType 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1 节)。d8t硬盘123

7.3.1.1 TypeCode 字段

TypeCode 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.1 节)。d8t硬盘123

对于卷标签目录条目,此字段的有效值为 3。d8t硬盘123

7.3.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.2 节)。d8t硬盘123

对于“卷标签”目录条目,此字段的有效值为 0。d8t硬盘123

7.3.1.3 TypeCategory 字段

TypeCategory 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.3 节)。d8t硬盘123

7.3.1.4 InUse 字段

InUse 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.1.4 节)。d8t硬盘123

7.3.2 CharacterCount 字段

CharacterCount 字段应包含 VolumeLabel 字段包含的 Unicode 字符串的长度。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 0,这意味着 Unicode 字符串长度为 0 个字符(相当于无卷标签)
  • 最多 11 个字符,这意味着 Unicode 字符串长度为 11 个字符

7.3.3 VolumeLabel 字段

VolumeLabel 字段应包含 Unicode 字符串,该字符串是卷的用户友好名称。 VolumeLabel 字段与文件名目录项的 FileName 字段具有相同的字符集(请参阅 第 7.7.3 节)。d8t硬盘123

7.4 文件目录条目

文件目录条目描述文件和目录。 它们是关键主目录条目,任何目录可能包含零个或多个文件目录条目(请参阅表 27 )。 要使文件目录条目有效,只有一个流扩展目录条目和至少一个文件名目录条目必须紧跟文件目录条目(分别请参阅 第 7.6 节 7.6 和 第 7.7 节)。d8t硬盘123

表 27 File DirectoryEntryd8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.4.1 节 定义其内容。
次要计数 1 1 此字段是必需的,第 7.4.2 节 定义其内容。
SetChecksum 2 2 此字段是必需的,第 7.4.3 节 定义其内容。
FileAttributes 4 2 此字段是必需的,第 7.4.4 节 定义其内容。
Reserved1 6 2 此字段是必需的,并且保留其内容。
创建时间戳 8 4 此字段是必需的,第 7.4.5 节 定义其内容。
最后修改时间戳 12 4 此字段是必需的,第 7.4.6 节 定义其内容。
最后访问时间戳 16 4 此字段是必需的,第 7.4.7 节 定义其内容。
创建10毫秒增量 (Create10msIncrement) 20 1 此字段是必需的,第 7.4.5 节 定义其内容。
最后修改10毫秒增量 21 1 此字段是必需的,第 7.4.6 节 定义其内容。
UTC 偏移量创建 22 1 此字段是必需的,第 7.4.5 节 定义其内容。
LastModifiedUtcOffset(最后修改的UTC偏移量) 23 1 此字段是必需的,第 7.4.6 节 定义其内容。
LastAccessedUtcOffset(最后访问的协调世界时偏移量) 二十四 1 此字段是必需的,第 7.4.7 节 定义其内容。
Reserved2 二十五 7 此字段是必需的,并且保留其内容。

7.4.1 EntryType 字段

EntryType 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1 节)。d8t硬盘123

7.4.1.1 TypeCode 字段

TypeCode 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.1 节)。d8t硬盘123

对于文件目录条目,此字段的有效值为 5。d8t硬盘123

7.4.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.2 节)。d8t硬盘123

对于文件目录条目,此字段的有效值为 0。d8t硬盘123

7.4.1.3 TypeCategory 字段

TypeCategory 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.3 节)。d8t硬盘123

7.4.1.4 InUse 字段

InUse 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.1.4 节)。d8t硬盘123

7.4.2 SecondaryCount 字段

SecondaryCount 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.2 节)。d8t硬盘123

7.4.3 SetChecksum 字段

SetChecksum 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.3 节)。d8t硬盘123

7.4.4 FileAttributes 字段

FileAttributes 字段包含标志(请参阅表 28 )。d8t硬盘123

表 28 FileAttributes 字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
ReadOnly 0 1 此字段是必需的,符合 MS-DOS 定义。
隐藏 1 1 此字段是必需的,符合 MS-DOS 定义。
系统 2 1 此字段是必需的,符合 MS-DOS 定义。
Reserved1 3 1 此字段是必需的,并且保留其内容。
目录 4 1 此字段是必需的,符合 MS-DOS 定义。
档案 5 1 此字段是必需的,符合 MS-DOS 定义。
Reserved2 6 10 此字段是必需的,并且保留其内容。

7.4.5 CreateTimestamp、Create10msIncrement 和 CreateUtcOffset 字段

同时,CreateTimestamp 和 CreateTime10msIncrement 字段应描述创建给定文件/目录的本地日期和时间。 CreateUtcOffset 字段描述本地日期和时间与 UTC 的偏移量。 实现应在创建给定目录条目集时设置这些字段。d8t硬盘123

这些字段应符合 Timestamp、10msIncrement 和 UtcOffset 字段的定义(分别请参阅 第 7.4.8 节第 7.4.9 节和 第 7.4.10 节)。d8t硬盘123

7.4.6 LastModifiedTimestamp、LastModified10msIncrement 和 LastModifiedUtcOffset 字段

同时,LastModifiedTimestamp 和 LastModifiedTime10msIncrement 字段应描述上次修改与给定流扩展目录条目关联的任何群集内容的本地日期和时间。 LastModifiedUtcOffset 字段描述本地日期和时间与 UTC 的偏移量。 实现应更新以下字段:d8t硬盘123

  1. 修改与给定流扩展目录条目关联的任何群集的内容后(ValidDataLength 字段所描述的内容除外)
  2. 更改 ValidDataLength 或 DataLength 字段的值后

这些字段应符合 Timestamp、10msIncrement 和 UtcOffset 字段的定义(分别请参阅 第 7.4.8 节第 7.4.9 节和 第 7.4.10 节)。d8t硬盘123

7.4.7 LastAccessedTimestamp 和 LastAccessedUtcOffset 字段

LastAccessedTimestamp 字段应描述上次访问与给定流扩展目录条目关联的任何群集内容的本地日期和时间。 LastAccessedUtcOffset 字段描述本地日期和时间与 UTC 的偏移量。 实现应更新以下字段:d8t硬盘123

  1. 修改与给定流扩展目录条目关联的任何群集的内容后(除了存在 ValidDataLength 之外的内容除外)
  2. 更改 ValidDataLength 或 DataLength 字段的值后

在读取与给定的 Stream Extension 目录条目关联的任何群集的内容后,实现应更新这些字段。d8t硬盘123

这些字段应符合 Timestamp 和 UtcOffset 字段的定义(分别请参阅 第 7.4.8 节 和 第 7.4.10 节)。d8t硬盘123

7.4.8 时间戳字段

时间戳字段同时描述本地日期和时间(见 表 29)。d8t硬盘123

表 29 时间戳字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
DoubleSeconds 0 5 此字段是必需的,第 7.4.8.1 节 定义其内容。
分钟 5 6 此字段是必需的,第 7.4.8.2 节 定义其内容。
小时 11 5 此字段是必需的,第 7.4.8.3 节 定义其内容。
16 5 此字段是必需的,第 7.4.8.4 节 定义其内容。
21 4 此字段是必需的,第 7.4.8.5 节 定义其内容。
二十五 7 此字段是必需的,第 7.4.8.6 节 定义其内容。
7.4.8.1 DoubleSeconds 字段

DoubleSeconds 字段应以两秒的倍数描述时间戳字段的秒部分。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 0,表示 0 秒
  • 29,表示 58 秒
7.4.8.2 分钟字段

Minute 字段应描述 Timestamp 字段的分钟部分。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 0,表示 0 分钟
  • 59,表示 59 分钟
7.4.8.3 小时字段

“小时”字段应描述“时间戳”字段的小时部分。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 0,表示 00:00 小时
  • 23,表示 23:00 小时
7.4.8.4 天字段

“日期”字段应描述“时间戳”字段的日期部分。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 1,这是给定月份的第一天
  • 给定月份的最后一天(给定月份定义有效天数)
7.4.8.5 月字段

“月”字段应描述时间戳字段的月份部分。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 1,表示 1 月
  • 最多 12 个代表 12 月
7.4.8.6 年字段

“年份”字段应描述时间戳字段的年份部分,相对于 1980 年。 此字段表示值为 0 的 1980 年和值为 127 的 2107 年。d8t硬盘123

此字段的所有可能值都有效。d8t硬盘123

7.4.9 10msIncrement 字段

10msIncrement 字段应以十毫秒的倍数为单位为相应的时间戳字段提供额外的时间解析。d8t硬盘123

这些字段的有效值范围应为:d8t硬盘123

  • 至少 0,表示 0 毫秒
  • 最多 199 毫秒,表示 1990 毫秒

7.4.10 UtcOffset 字段

UtcOffset 字段(见 表 30)应描述其相应时间戳和 10msIncrement 字段所描述的 UTC 到本地日期和时间的偏移量。 从 UTC 到本地日期和时间的偏移量包括时区和其他日期时间调整的影响,例如夏令时和区域夏季时间的变化。d8t硬盘123

表 30 UtcOffset 字段结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(位)d8t硬盘123

大小d8t硬盘123

(位)d8t硬盘123

注释
OffsetFromUtc 0 7 此字段是必需的,第 7.4.10.1 节定义其内容。
偏移有效 7 1 此字段是必需的,第 7.4.10.2 节 定义其内容。
7.4.10.1 OffsetFromUtc 字段

OffsetFromUtc 字段应描述相关 Timestamp 和 10msIncrement 字段包含的本地日期和时间的 UTC 偏移量。 此字段以 15 分钟的间隔描述 UTC 的偏移量(请参阅表 31)。d8t硬盘123

表 31 OffsetFromUtc 字段 的值的含义d8t硬盘123

带符号十进制等效 说明
3Fh 63 本地日期和时间为 UTC + 15:45
3Eh 62 本地日期和时间为 UTC + 15:30

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

01 小时 1 本地日期和时间为 UTC + 00:15
00h 0 本地日期和时间为 UTC
7Fh -1 本地日期和时间为 UTC – 00:15

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

.d8t硬盘123

41 小时 -63 本地日期和时间为 UTC – 15:45
40小时 -64 本地日期和时间为 UTC – 16:00

如上表所示,此字段的所有可能值都有效。 但是,当以下情况时,实现应只记录此字段的值 00h:d8t硬盘123

  1. 本地日期和时间实际上与 UTC 相同,在这种情况下,OffsetValid 字段的值应为 1
  2. 本地日期和时间未知,在这种情况下,OffsetValid 字段的值应为 1,实现应将 UTC 视为本地日期和时间
  3. UTC 未知,在这种情况下,OffsetValid 字段的值应为 0

如果 UTC 的本地日期和时间偏移量不是 15 分钟间隔的倍数,则实现应在 OffsetFromUtc 字段中记录 00 小时,并将 UTC 视为本地日期和时间。d8t硬盘123

7.4.10.2 OffsetValid 字段

OffsetValid 字段应描述 OffsetFromUtc 字段的内容是否有效,如下所示:d8t硬盘123

  • 0,这意味着 OffsetFromUtc 字段的内容无效d8t硬盘123

    且应为 00hd8t硬盘123

  • 1,这意味着 OffsetFromUtc 字段的内容有效d8t硬盘123

当 UTC 不可用于计算 OffsetFromUtc 字段的值时,实现应仅将此字段设置为值 0。 如果此字段包含值 0,则实现应将 Timestamp 和 10msIncrement 字段视为与当前本地日期和时间相同的 UTC 偏移量。d8t硬盘123

7.5 卷 GUID 目录条目

卷 GUID 目录条目包含一个 GUID,它使实现能够唯一且以编程方式区分卷。 卷 GUID 作为根目录中的良性主目录条目存在(请参阅 表 32)。 卷 GUID 目录条目的有效数目从 0 到 1 不等。d8t硬盘123

表 32 卷 GUID DirectoryEntryd8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.5.1 节 定义其内容。
次要计数 1 1 此字段是必需的,第 7.5.2 节 定义其内容。
SetChecksum 2 2 此字段是必需的,第 7.5.3 节 定义其内容。
GeneralPrimaryFlags 4 2 此字段是必需的,第 7.5.4 节 定义其内容。
VolumeGuid 6 16 此字段是必需的,第 7.5.5 节 定义其内容。
保留 22 10 此字段是必需的,并且保留其内容。

7.5.1 EntryType 字段

EntryType 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1 节)。d8t硬盘123

7.5.1.1 TypeCode 字段

TypeCode 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.1 节)。d8t硬盘123

对于卷 GUID 目录条目,此字段的有效值为 0。d8t硬盘123

7.5.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.2 节)。d8t硬盘123

对于卷 GUID 目录条目,此字段的有效值为 1。d8t硬盘123

7.5.1.3 TypeCategory 字段

TypeCategory 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.1.3 节)。d8t硬盘123

7.5.1.4 InUse 字段

InUse 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.1.4 节)。d8t硬盘123

7.5.2 SecondaryCount 字段

SecondaryCount 字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.2 节)。d8t硬盘123

对于卷 GUID 目录条目,此字段的有效值为 0。d8t硬盘123

7.5.3 SetChecksum 字段

SetChecksum 字段应符合通用主目录模板中提供的定义(请参阅 第 6.3.3 节)。d8t硬盘123

7.5.4 GeneralPrimaryFlags 字段

GeneralPrimaryFlags 字段应符合通用主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.4 节),并定义要保留的 CustomDefined 字段的内容。d8t硬盘123

7.5.4.1 分配可能字段

“分配可能”字段应符合泛型主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.4.1 节)。d8t硬盘123

对于卷 GUID 目录条目,此字段的有效值为 0。d8t硬盘123

7.5.4.2 NoFatChain 字段

NoFatChain 字段应符合通用主 DirectoryEntry 模板中提供的定义(请参阅 第 6.3.4.2 节)。d8t硬盘123

7.5.5 VolumeGuid 字段

VolumeGuid 字段应包含唯一标识给定卷的 GUID。d8t硬盘123

此字段的所有可能值都是有效的,但 {00000000-0000-0000-0000-000000000000}null GUID 除外。d8t硬盘123

7.6 流扩展目录条目

Stream Extension 目录项是文件目录条目集中的关键辅助目录条目(请参阅表 33 )。 文件目录条目集中的有效流扩展目录条目数为 1。 此外,仅当此目录项紧跟文件目录条目时,此目录条目才有效。d8t硬盘123

表 33 流扩展 DirectoryEntryd8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.6.1 节 定义其内容。
常规辅助标志 1 1 此字段是必需的,第 7.6.2 节 定义其内容。
Reserved1 2 1 此字段是必需的,并且保留其内容。
NameLength 3 1 此字段是必需的,第 7.6.3 节 定义其内容。
NameHash 4 2 此字段是必需的,第 7.6.4 节 定义其内容。
Reserved2 6 2 此字段是必需的,并且保留其内容。
有效数据长度 8 8 此字段是必需的,第 7.6.5 节 定义其内容。
保留3 16 4 此字段是必需的,并且保留其内容。
FirstCluster 20 4 此字段是必需的,第 7.6.6 节 定义其内容。
数据长度 二十四 8 此字段是必需的,第 7.6.7 节 定义其内容。

7.6.1 EntryType 字段

EntryType 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1 节)。d8t硬盘123

7.6.1.1 TypeCode 字段

TypeCode 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.1 节)。d8t硬盘123

对于流扩展目录条目,此字段的有效值为 0。d8t硬盘123

7.6.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.2 节)。d8t硬盘123

对于流扩展目录条目,此字段的有效值为 0。d8t硬盘123

7.6.1.3 TypeCategory 字段

TypeCategory 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.3 节)。d8t硬盘123

7.6.1.4 InUse 字段

InUse 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.4 节)。d8t硬盘123

7.6.2 通用次要标志字段

GeneralSecondaryFlags 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2 节),并定义要保留的 CustomDefined 域的内容。d8t硬盘123

7.6.2.1 分配可能字段

“分配可能”字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.1 节)。d8t硬盘123

对于 Stream Extension 目录条目,此字段的有效值为 1。d8t硬盘123

7.6.2.2 NoFatChain 字段

NoFatChain 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.2 节)。d8t硬盘123

7.6.3 NameLength 字段

NameLength 字段应包含后续文件名目录条目(见 第 7.7 节)的 Unicode 字符串的长度。d8t硬盘123

此字段的有效值范围应为:d8t硬盘123

  • 至少 1,这是最短的可能文件名
  • 最多 255 个,这是最长的文件名

NameLength 字段的值还影响文件名目录条目的数量(请参阅 第 7.7 节)。d8t硬盘123

7.6.4 NameHash 字段

NameHash 字段应包含一个 2 字节哈希(见 图 4) 的上写文件名。 这样,实现就可以在按名称搜索文件时执行快速比较。 重要的是,NameHash 提供对不匹配的验证。 实现应验证所有 NameHash 匹配项与上写文件名的比较。d8t硬盘123

图 4 NameHash 计算d8t硬盘123

C
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 字段

ValidDataLength 字段应描述写入数据流用户数据的距离。 实现应在将数据进一步写入数据流时更新此字段。 在存储介质上,未定义有效数据长度与数据流的数据长度之间的数据。 实现应返回超出有效数据长度的读取作的零。d8t硬盘123

如果相应的文件目录条目描述目录,则此字段的唯一有效值等于 DataLength 字段的值。 否则,此字段的有效值范围应为:d8t硬盘123

  • 至少 0,这意味着没有将用户数据写出到数据流
  • 在大多数情况下,DataLength,这意味着用户数据已写出到数据流的整个长度

7.6.6 FirstCluster 字段

FirstCluster 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.3 节)。d8t硬盘123

此字段应包含托管用户数据的数据流第一个群集的索引。d8t硬盘123

7.6.7 DataLength 字段

DataLength 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.4 节)。d8t硬盘123

如果相应的文件目录条目描述目录,则此字段的有效值是关联的分配的整个大小(以字节为单位),可能为 0。 此外,对于目录,此字段的最大值为 256MB。d8t硬盘123

7.7 文件名目录条目

文件名目录项是文件目录条目集中的关键辅助目录条目(请参阅 表 34)。 文件目录条目集中的有效文件名目录条目数为 NameLength / 15,向上舍入为最接近的整数。 此外,仅当文件名目录条目紧跟流扩展目录条目作为连续序列时才有效。 文件名目录条目组合在一起,构成文件目录条目集的文件名。d8t硬盘123

给定目录条目的所有子项应具有唯一的文件名目录条目集。 也就是说,在任何一个目录中的向上大小写后,不能有重复的文件或目录名称。d8t硬盘123

表 34 文件名 DirectoryEntryd8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.7.1 节 定义其内容。
常规辅助标志 1 1 此字段是必需的,第 7.7.2 节 定义其内容。
文件名 2 30 此字段是必需的,第 7.7.3 节 定义其内容。

7.7.1 EntryType 字段

EntryType 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1 节)。d8t硬盘123

7.7.1.1 TypeCode 字段

TypeCode 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.1 节)。d8t硬盘123

对于“文件名”目录条目,此字段的有效值为 1。d8t硬盘123

7.7.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.2 节)。d8t硬盘123

对于“文件名”目录条目,此字段的有效值为 0。d8t硬盘123

7.7.1.3 TypeCategory 字段

TypeCategory 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.3 节)。d8t硬盘123

7.7.1.4 InUse 字段

InUse 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.4 节)。d8t硬盘123

7.7.2 通用次要标志字段

GeneralSecondaryFlags 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2 节),并定义要保留的 CustomDefined 域的内容。d8t硬盘123

7.7.2.1 分配可能字段

“分配可能”字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.1 节)。d8t硬盘123

对于“文件名”目录条目,此字段的有效值为 0。d8t硬盘123

7.7.2.2 NoFatChain 字段

NoFatChain 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.2 节)。d8t硬盘123

7.7.3 FileName 字段

FileName 字段应包含 Unicode 字符串,该字符串是文件名的一部分。 在文件目录条目集中存在文件名目录条目的顺序,FileName 字段连接以形成文件目录条目集的文件名。 鉴于 FileName 字段的长度为 15 个字符,并且文件名目录条目的最大数目为 17,最终连接文件名的最大长度为 255。d8t硬盘123

串联的文件名与其他基于 FAT 的文件系统具有相同的非法字符集(请参阅 表 35)。 实现应将 FileName 字段未使用的字符设置为值 0000h。d8t硬盘123

表 35 无效的文件名字符d8t硬盘123

字符代码 说明 字符代码 说明 字符代码 说明
0000h 控制代码 0001h 控制代码 0002h 控制代码
0003h 控制代码 0004h 控制代码 0005h 控制代码
0006h 控制代码 0007h 控制代码 0008h 控制代码
0009h 控制代码 000Ah 控制代码 000Bh 控制代码
000Ch 控制代码 000Dh 控制代码 000Eh 控制代码
000Fh 控制代码 0010h 控制代码 0011h 控制代码
0012h 控制代码 0013h 控制代码 0014h 控制代码
0015h 控制代码 0016h 控制代码 0017h 控制代码
0018h 控制代码 0019h 控制代码 001Ah 控制代码
001Bh 控制代码 001Ch 控制代码 001Dh 控制代码
001Eh 控制代码 001Fh 控制代码 0022h 引号
002Ah 星号 002Fh 正斜杠 003Ah 结肠
003Ch 小于符号 003Eh 大于符号 003Fh 问号
005Ch 反斜杠 007Ch 垂直条形图    

文件名“.”和“.”。分别具有“此目录”和“包含目录”的特殊含义。 实现不应在 FileName 字段中记录其中任一保留文件名。 但是,实现可能会在目录列表中生成这两个文件名,以引用所列出的目录和包含目录。d8t硬盘123

实现可能希望将文件和目录名称限制为仅 ASCII 字符集。 如果是这样,它们应将其字符用于前 128 个 Unicode 条目中的有效字符范围。 它们仍必须在卷上的 Unicode 中存储文件和目录名称,并在与用户交互时转换为/从 ASCII/Unicode 转换。d8t硬盘123

7.8 供应商扩展目录条目

供应商扩展目录项是文件目录条目集中的良性辅助目录条目(请参阅 表 36)。 文件目录条目集可以包含任意数量的供应商扩展目录条目,最多限制辅助目录条目数,减少其他辅助目录条目的数量。 此外,仅当供应商扩展目录条目不位于所需的流扩展和文件名目录条目之前时,它们才有效。d8t硬盘123

供应商扩展目录条目使供应商能够通过 VendorGuid 字段在单个文件目录条目集中具有唯一、特定于供应商的目录条目(请参阅 表 36)。 唯一的目录条目有效地使供应商能够扩展 exFAT 文件系统。 供应商可以定义供应商定义字段的内容(请参阅 表 36)。 供应商实现可以维护 VendorDefined 字段的内容,并提供特定于供应商的功能。d8t硬盘123

无法识别供应商扩展目录条目 GUID 的实现应将目录条目视为任何其他无法识别的良性辅助目录条目(请参阅 第 8.2 节)。d8t硬盘123

表 36 供应商扩展 DirectoryEntryd8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.8.1 节 定义其内容。
常规辅助标志 1 1 此字段是必需的,第 7.8.2 节 定义其内容。
VendorGuid 2 16 此字段是必需的,第 7.8.3 节 定义其内容。
供应商定义 18 14 此字段是必需的,供应商可以定义其内容。

7.8.1 EntryType 字段

EntryType 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1 节)。d8t硬盘123

7.8.1.1 TypeCode 字段

TypeCode 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.1 节)。d8t硬盘123

对于供应商扩展目录条目,此字段的有效值为 0。d8t硬盘123

7.8.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.2 节)。d8t硬盘123

对于供应商扩展目录条目,此字段的有效值为 1。d8t硬盘123

7.8.1.3 TypeCategory 字段

TypeCategory 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.3 节)。d8t硬盘123

7.8.1.4 InUse 字段

InUse 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.4 节)。d8t硬盘123

7.8.2 GeneralSecondaryFlags 字段

GeneralSecondaryFlags 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2 节),并定义要保留的 CustomDefined 域的内容。d8t硬盘123

7.8.2.1 分配可能字段

“分配可能”字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.1 节)。d8t硬盘123

对于供应商扩展目录条目,此字段的有效值为 0。d8t硬盘123

7.8.2.2 NoFatChain 字段

NoFatChain 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.2 节)。d8t硬盘123

7.8.3 VendorGuid 字段

VendorGuid 字段应包含唯一标识给定供应商扩展的 GUID。d8t硬盘123

此字段的所有可能值都是有效的,但 {00000000-0000-0000-0000-000000000000}null GUID 除外。 但是,供应商应在定义扩展时使用 GUID 生成工具(如 GuidGen.exe)来选择 GUID。d8t硬盘123

此字段的值确定 VendorDefined 字段的特定于供应商的结构。d8t硬盘123

7.9 供应商分配目录条目

供应商分配目录项是文件目录条目集中的良性辅助目录条目(请参阅 表 37)。 文件目录条目集可以包含任意数量的供应商分配目录条目,最多限制辅助目录条目数,减少其他辅助目录条目的数量。 此外,仅当供应商分配目录项不位于所需的流扩展和文件名目录条目之前时,它们才有效。d8t硬盘123

供应商分配目录条目使供应商能够通过 VendorGuid 字段在单个文件目录条目集中具有唯一、特定于供应商的目录条目(请参阅 表 37)。 唯一的目录条目有效地使供应商能够扩展 exFAT 文件系统。 供应商可以定义关联群集的内容(如果有)。 供应商实现可以维护关联群集的内容(如果有)并提供特定于供应商的功能。d8t硬盘123

无法识别供应商分配目录条目 GUID 的实现应将目录条目视为任何其他无法识别的良性辅助目录条目(请参阅 第 8.2 节)。d8t硬盘123

表 37 供应商分配 DirectoryEntryd8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
EntryType 0 1 此字段是必需的,第 7.9.1 节 定义其内容。
常规辅助标志 1 1 此字段是必需的,第 7.9.2 节 定义其内容。
VendorGuid 2 16 此字段是必需的,第 7.9.3 节 定义其内容。
供应商定义 18 2 此字段是必需的,供应商可以定义其内容。
FirstCluster 20 4 此字段是必需的,第 7.9.4 节 定义其内容。
数据长度 二十四 8 此字段是必需的,第 7.9.5 节 定义其内容。

7.9.1 EntryType 字段

EntryType 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1 节)。d8t硬盘123

7.9.1.1 TypeCode 字段

TypeCode 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.1 节)。d8t硬盘123

对于供应商分配目录条目,此字段的有效值为 1。d8t硬盘123

7.9.1.2 TypeImportance 字段

TypeImportance 字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.2 节)。d8t硬盘123

对于供应商分配目录条目,此字段的有效值为 1。d8t硬盘123

7.9.1.3 TypeCategory 字段

TypeCategory 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.3 节)。d8t硬盘123

7.9.1.4 InUse 字段

InUse 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.1.4 节)。d8t硬盘123

7.9.2 GeneralSecondaryFlags 字段

GeneralSecondaryFlags 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2 节),并定义要保留的 CustomDefined 域的内容。d8t硬盘123

7.9.2.1 分配可能字段

“分配可能”字段应符合泛型辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.1 节)。d8t硬盘123

对于供应商分配目录条目,此字段的有效值为 1。d8t硬盘123

7.9.2.2 NoFatChain 字段

NoFatChain 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.2.2 节)。d8t硬盘123

7.9.3 VendorGuid 字段

VendorGuid 字段应包含唯一标识给定供应商分配的 GUID。d8t硬盘123

此字段的所有可能值都是有效的,但 {00000000-0000-0000-0000-000000000000}null GUID 除外。 但是,供应商应在定义扩展时使用 GUID 生成工具(如 GuidGen.exe)来选择 GUID。d8t硬盘123

此字段的值确定关联群集内容的供应商特定结构(如果有)。d8t硬盘123

7.9.4 FirstCluster 字段

FirstCluster 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.3 节)。d8t硬盘123

7.9.5 DataLength 字段

DataLength 字段应符合通用辅助 DirectoryEntry 模板中提供的定义(请参阅 第 6.4.4 节)。d8t硬盘123

7.10 TexFAT 填充目录条目

此规范(exFAT Revision 1.00 文件系统基本规范)未定义 TexFAT 填充目录条目。 但是,其类型代码为 1,其类型重要性为 1。 此规范的实现应将 TexFAT Padding 目录条目视为与任何其他无法识别的良性主目录条目相同,实现不应移动 TexFAT Padding 目录条目。d8t硬盘123

8 实现说明

实现应确保卷尽可能能够复原到电源故障和其他不可避免的故障。 创建新目录条目或修改群集分配时,实现通常应遵循以下写入顺序:d8t硬盘123

  1. 将 VolumeDirty 字段的值设置为 1
  2. 如有必要,请更新活动 FAT
  3. 更新活动分配位图
  4. 根据需要创建或更新目录条目
  5. 将 VolumeDirty 字段的值清除为 0(如果第一步之前的值为 0)

删除目录条目或释放群集分配时,实现应遵循以下写入顺序:d8t硬盘123

  1. 将 VolumeDirty 字段的值设置为 1
  2. 如有必要,请删除或更新目录条目
  3. 如有必要,请更新活动 FAT
  4. 更新活动分配位图
  5. 将 VolumeDirty 字段的值清除为 0(如果第一步之前的值为 0)

8.2 无法识别的目录条目的含义

将来具有相同的主要修订号、1 和大于 0 的次要修订号的 exFAT 规范可以定义新的良性主要、关键次要目录和良性辅助目录条目。 只有较高主要修订号的 exFAT 规范才能定义新的关键主目录条目。 此规范的实现(exFAT Revision 1.00 文件系统基本规范)应能够装载和访问主要修订号 1 的任何 exFAT 卷和任何次要修订号。 这演示了实现可能会遇到无法识别的目录条目的情况。 下面介绍了这些方案的含义:d8t硬盘123

  1. 根目录中存在无法识别的关键主目录条目会使卷无效。 任何关键主目录条目(文件目录条目除外)在任何非根目录中都呈现宿主目录无效。d8t硬盘123

  2. 实现不应修改无法识别的良性主目录条目或其关联的群集分配。 但是,删除目录时,仅当删除目录时,实现应删除无法识别的良性主目录条目,并释放所有关联的群集分配(如果有)。d8t硬盘123

  3. 实现不应修改无法识别的关键辅助目录条目或其关联的群集分配。 目录条目集中存在一个或多个无法识别的关键辅助目录条目会使整个目录条目集无法识别。 删除包含一个或多个无法识别的关键辅助目录条目的目录条目集时,实现将释放与无法识别的关键辅助目录条目关联的所有群集分配(如果有)。 此外,如果目录条目集描述目录,则实现可以:d8t硬盘123

    • 遍历到目录中
    • 枚举它包含的目录条目
    • 删除包含的目录条目
    • 将包含的目录条目移动到其他目录

    但是,实现不应:d8t硬盘123

    • 按说明修改包含的目录条目(删除除外)
    • 创建新的包含的目录条目
    • 打开包含的目录条目(遍历和枚举除外),如前所述
  4. 实现不应修改无法识别的良性辅助目录条目或其关联的群集分配。 实现应忽略无法识别的良性辅助目录条目。 删除目录条目集时,实现将释放与无法识别的良性辅助目录条目关联的所有群集分配(如果有)。d8t硬盘123

9 个文件系统限制

9.1 扇区大小限制

BytesPerSectorShift 字段定义下限和上限扇区大小限制(计算结果为 下限:512 字节;上限:4,096 字节)。d8t硬盘123

9.2 群集大小限制

SectorsPerClusterShift 字段定义下限和上限群集大小限制(下限:1 扇区;上限:25 -- BytesPerSectorShift 扇区,其计算结果为 32MB)。d8t硬盘123

9.3 群集堆大小限制

群集堆应至少包含足够的空间来托管以下基本文件系统结构:根目录、所有分配位图和上写表。d8t硬盘123

较低的群集堆大小限制是驻留在群集堆中的每个基本文件系统结构的较小大小限制的函数。 即使给定尽可能小的群集(512 字节),每个基本文件系统结构也不需要多个群集。 因此,下限为:2 + NumberOfFats 群集,计算结果为 3 或 4 个群集,具体取决于 NumberOfFats 字段的值。d8t硬盘123

群集堆大小上限是群集的最大可能数量的简单函数,ClusterCount 字段定义(上限:232- 11 个群集)。 无论群集大小如何,此类群集堆都具有足够的空间来至少托管基本文件系统结构。d8t硬盘123

9.4 卷大小限制

VolumeLength 字段定义卷大小上限(下限:220/ 2BytesPerSectorShift扇区,计算结果为 1MB; 上限:2 个64 个- 1 个扇区,鉴于最大的扇区大小,评估结果约为 64ZB)。 但是,此规范建议在群集堆中不超过 224 个- 2 个群集(请参阅 第 3.1.9 节)。 因此,建议的卷上限为:ClusterHeapOffset + (224 - 2) * 2SectorsPerClusterShift。 假设最大可能的群集大小为 32MB,并且假设 ClusterHeapOffset 为 96MB(主和备份启动区域和仅第一个 FAT 的足够空间),建议的卷上限计算为大约 512TB。d8t硬盘123

9.5 目录大小限制

Stream Extension 目录条目的 DataLength 字段定义下限和上限目录大小限制(下限:0 字节;上限:256MB)。 这意味着一个目录最多可以承载 8,388,608 个目录条目(每个目录条目使用 32 个字节)。 鉴于文件目录条目集最小,有三个目录条目,一个目录最多可以托管 2,796,202 个文件。d8t硬盘123

10 附录

10.1 全局唯一标识符(GUID)

GUID 是通用唯一标识符的Microsoft实现。 GUID 是一个包含一组 8 个十六进制数字的 128 位值, 后跟 4 个十六进制数字的三组,后跟一组 12 个十六进制数字,例如 {6B29FC40-CA47-1067-B31D-00DD010662DA}(请参阅 表 38)。d8t硬盘123

表 38 GUID 结构d8t硬盘123

字段名称

偏移量d8t硬盘123

(字节)d8t硬盘123

大小d8t硬盘123

(字节)d8t硬盘123

注释
Data1 0 4 此字段是必需的,并且包含来自示例的第一组 GUID(6B29FC40h)的四个字节。
Data2 4 2 此字段是必需的,并且包含来自示例的第二组 GUID(CA47h)中的两个字节。
Data3 6 2 此字段是必需的,并且包含来自 GUID 第三组(1067h 从示例中为 1067h)的两个字节。
Data4[0] 8 1 此字段是必需的,并且包含 GUID 第四组(来自示例的 B3h)中最重要的字节。
Data4[1] 9 1 此字段是必需的,并且包含 GUID 第四组(示例中的 1Dh)中最少的重要字节。
Data4[2] 10 1 此字段是必需的,并且包含来自 GUID 第五组的第一个字节(从示例中为 00h)。
Data4[3] 11 1 此字段是必需的,包含来自第五组 GUID(示例中的 DDh)的第二个字节。
Data4[4] 12 1 此字段是必需的,并且包含来自第五组 GUID 的第三个字节(从示例中为 01h)。
Data4[5] 13 1 此字段是必需的,并且包含来自 GUID 第五组的第四个字节(从示例中为 06h)。
Data4[6] 14 1 此字段是必需的,并且包含来自 GUID 第五组的第五个字节(从示例中为 62 小时)。
Data4[7] 15 1 此字段是必需的,并且包含来自第五组 GUID(示例中的 DAh)的第六个字节。

10.2 分区表

为了确保在广泛的使用方案中 exFAT 卷的互作性,实现应对 MBR 分区存储和分区 GUID {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7} 使用分区类型 07h 进行 GPT 分区存储。d8t硬盘123

11 文档更改历史记录

表 39 描述了发布、更正、添加、删除和澄清本文档的历史记录。d8t硬盘123

表 39 文档更改历史记录d8t硬盘123

日期 更改  说明
08-Jan-2008

基本规范的第一个版本,其中包括:d8t硬盘123

第 1 部分,简介d8t硬盘123

第 2 节,d8t硬盘123
卷结构d8t硬盘123

第 3 部分:主启动区域和备份启动区域d8t硬盘123

第 4 节:文件分配表区域d8t硬盘123

第 5 节:数据区域d8t硬盘123

第 6 节:目录结构d8t硬盘123

第 7 节:目录条目定义d8t硬盘123

第 8 节,实现说明d8t硬盘123

第 9 节:文件系统限制d8t硬盘123

第 10 节:附录d8t硬盘123

08-Jun-2008

基本规范的第二个版本,其中包括以下更改:d8t硬盘123

第 11 节的添加,d8t硬盘123
文档更改历史记录d8t硬盘123

在 7.8 和 7.9 节中添加供应商扩展和供应商分配目录条目d8t硬盘123

在 7.2.5 和 7.2.5.1 节中添加建议的上例表d8t硬盘123

在第 7.4 节中添加 UtcOffset 字段,并在第 1.3 节中添加 UTC 首字母缩略词d8t硬盘123

更正表 19 中自定义定义字段的大小d8t硬盘123

更正第 7.6.3 节中 NameLength 值的有效范围d8t硬盘123

更正和澄清第 7.4 节中的时间戳和 10msIncrement 字段d8t硬盘123

说明第 3.3 节中的 Null 参数结构d8t硬盘123

说明第 6.3.4.2 节中 NoFatChain 字段的值的含义d8t硬盘123

说明 6.2.3 节中 DataLength 字段的值的含义d8t硬盘123

第 3.1.13.2 节中 VolumeDirty 字段的说明,并建议在第 8.1 节中排序d8t硬盘123

第 3.1.13.3 节中 MediaFailure 字段的说明d8t硬盘123

2008 年 10 月 1 日

基本规范的第三个版本,其中包括以下更改:d8t硬盘123

将 SHOULD、SHOULD 和 MAY 添加到字段说明d8t硬盘123

表 2 第 1.3 节中添加 UTC 定义d8t硬盘123

修改了第 1.5 节,以确保与 TexFAT 规范文档保持一致。d8t硬盘123

阐明了仅Microsoft可以定义第 6.2 节中目录条目的布局的限制d8t硬盘123

添加了说明,如果 DataLength 为零且 NoFatChain 设置为第 6.3.5 节和第 6.4.3 节,则 FirstCluster Field 应为零d8t硬盘123

阐明了第 7.4 节中有效文件目录条目的要求d8t硬盘123

向第 7.7 节添加了对唯一文件和目录名称的要求d8t硬盘123

向第 7.7.3 节末尾添加了 ASCII 的实现说明d8t硬盘123

01-Jan-2009

基本规范的第四个版本,其中包括以下更改:d8t硬盘123

删除了对 Windows CE 访问控制条目的引用d8t硬盘123

向第 7.2.5.1 节添加了说明,以显式要求完整案例表d8t硬盘123

2009 年 9 月 2 日

基本规范的第五个版本,其中包括以下更改:d8t硬盘123

文档格式更改以允许更好的 PDF 转换d8t硬盘123

2010 年 2 月 24 日

第六版基本规范,其中包括以下更改:d8t硬盘123

修正了不正确的语句:“如果 DataLength 为零且 NoFatChain 设置为零,则 NoFatChain 设置为”如果 NoFatChain 位为 1,则 FirstCluster 必须指向群集堆中的有效群集“,以阐明如果设置了 NoFatChain 位,则必须进行有效的分配。d8t硬盘123

添加了“如果 NoFatChain 位为 1,则 DataLength 不得为零。 如果 FirstCluster 字段为零,则 DataLength 还必须为零“到 Section 6.3.6 和 Section 6.4.4,以澄清如果设置了 NoFatChain 位,则必须有有效的分配。d8t硬盘123

已将版权声明更新为 2010d8t硬盘123

2019 年 8 月 26 日

基本规范的第七个版本,其中包括以下更改:d8t硬盘123

更新了与规范相关的法律条款,包括:d8t硬盘123

删除Microsoft机密通知d8t硬盘123

删除 Microsoft Corporation 技术文档许可协议部分d8t硬盘123

已将版权声明更新为 2019d8t硬盘123

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门