UFS_GEOMETRY_DESCRIPTOR 结构 (ufs.h)

UFS_GEOMETRY_DESCRIPTOR 描述设备的几何参数。

语法

typedef struct {
  UCHAR  bLength;
  UCHAR  bDescriptorIDN;
  UCHAR  bMediaTechnology;
  UCHAR  Reserved1;
  UCHAR  qTotalRawDeviceCapacity[8];
  UCHAR  bMaxNumberLU;
  UCHAR  dSegmentSize[4];
  UCHAR  bAllocationUnitSize;
  UCHAR  bMinAddrBlockSize;
  UCHAR  bOptimalReadBlockSize;
  UCHAR  bOptimalWriteBlockSize;
  UCHAR  bMaxInBufferSize;
  UCHAR  bMaxOutBufferSize;
  UCHAR  bRPMB_ReadWriteSize;
  UCHAR  bDynamicCapacityResourcePolicy;
  UCHAR  bDataOrdering;
  UCHAR  bMaxContexIDNumber;
  UCHAR  bSysDataTagUnitSize;
  UCHAR  bSysDataTagResSize;
  UCHAR  bSupportedSecRTypes;
  UCHAR  wSupportedMemoryTypes[2];
  UCHAR  dSystemCodeMaxNAllocU[4];
  UCHAR  wSystemCodeCapAdjFac[2];
  UCHAR  dNonPersistMaxNAllocU[4];
  UCHAR  wNonPersistCapAdjFac[2];
  UCHAR  dEnhanced1MaxNAllocU[4];
  UCHAR  wEnhanced1CapAdjFac[2];
  UCHAR  dEnhanced2MaxNAllocU[4];
  UCHAR  wEnhanced2CapAdjFac[2];
  UCHAR  dEnhanced3MaxNAllocU[4];
  UCHAR  wEnhanced3CapAdjFac[2];
  UCHAR  dEnhanced4MaxNAllocU[4];
  UCHAR  wEnhanced4CapAdjFac[2];
  UCHAR  dOptimalLogicalBlockSize[4];
  UCHAR  bHPBRegionSize;
  UCHAR  bHPBNumberLU;
  UCHAR  bHPBSubRegionSize;
  USHORT wDeviceMaxActiveHPBRegions;
  UCHAR  Reserved2[2];
  UCHAR  dWriteBoosterBufferMaxNAllocUnits[4];
  UCHAR  bDeviceMaxWriteBoosterLUs;
  UCHAR  bWriteBoosterBufferCapAdjFac;
  UCHAR  bSupportedWriteBoosterBufferUserSpaceReductionTypes;
  UCHAR  bSupportedWriteBoosterBufferTypes;
} UFS_GEOMETRY_DESCRIPTOR, *PUFS_GEOMETRY_DESCRIPTOR;

成员

bLength

指定描述符的长度。

bDescriptorIDN

指定描述符的类型。 此描述符的值为 UFS_DESC_GEOMETRY_IDN

bMediaTechnology

留待将来使用。

Reserved1

留待将来使用。

qTotalRawDeviceCapacity[8]

指定原始设备总容量。 以 512 字节为单位表示。

bMaxNumberLU

指定 UFS (通用闪存存储) 支持的逻辑单元 () 的最大数目。 包含以下值之一:

说明
0x00 8 个逻辑单元。
0x01 32 个逻辑单元。
其他值 保留供将来使用。

dSegmentSize[4]

以 512 字节为单位指定设备的段大小。

bAllocationUnitSize

指定以段数表示的分配单元大小。

bMinAddrBlockSize

指定最小可寻址块大小(以 512 字节为单位)。 最小大小为 4 KB 或值 0x08。

bOptimalReadBlockSize

指定以 512 字节为单位的最佳读取块大小。

bOptimalWriteBlockSize

指定以 512 字节为单位的最佳写入块大小。 bOptimalWriteBlockSize 等于或大于 bMinAddrBlockSize

bMaxInBufferSize

指定数据传入缓冲区的最大大小(以 512 字节为单位)。 最小大小为 4 KB 或值 0x08。

bMaxOutBufferSize

指定数据输出缓冲区的最大大小(以 512 字节为单位)。 最小大小为 4 KB 或值 0x08。

bRPMB_ReadWriteSize

指定安全协议传入和安全协议输出中允许的重播受保护内存块 (RPMB) 帧的最大数目。每帧为 256 字节。

bDynamicCapacityResourcePolicy

指定设备的备用块资源管理策略。 包含以下值之一:

说明
0x00 备用块资源管理策略是按逻辑单元制定的。
0x01 备用块资源管理策略是按内存类型制定的。

bDataOrdering

指定设备是否支持无序数据传输。 包含以下值之一:

说明
0x00 不支持无序数据传输。
0x01 支持无序数据传输。
所有其他值 保留供将来使用。

bMaxContexIDNumber

指定设备支持的最大上下文数。 此数字必须大于 5。

bSysDataTagUnitSize

指定系统数据标记单元大小。

bSysDataTagResSize

指定设备分配用于处理系统数据的最大大小(以字节为单位)。

bSupportedSecRTypes

指定受支持的安全删除类型。 变量的前 3 位是表示不同受支持的安全删除类型的标志。

bit 说明
0 通过擦除物理内存删除的信息。
1 通过使用单个字符后跟擦除覆盖寻址位置删除的信息。
2 通过使用字符、其补码和随机字符覆盖寻址位置删除的信息。
3 使用供应商定义的机制删除的信息。
4-7 保留供将来使用。

wSupportedMemoryTypes[2]

指定位图中支持的内存类型。

bit 说明
0 支持正常内存类型。
1 支持系统代码内存类型。
2 支持非永久性内存类型。
3 支持增强型内存类型 1。
4 支持增强型内存类型 2。
5 支持增强型内存类型 3。
6 支持增强型内存类型 4。
7-14 保留供将来使用。
15 支持 RPMB 内存类型。

dSystemCodeMaxNAllocU[4]

指定设备系统代码的最大分配单元数。

wSystemCodeCapAdjFac[2]

为系统代码内存类型设置容量调整因子。

dNonPersistMaxNAllocU[4]

为非永久性内存类型设置分配单元的最大数量。

wNonPersistCapAdjFac[2]

指定非永久性内存类型的容量调整因子。

dEnhanced1MaxNAllocU[4]

指定增强型内存类型 1 的最大分配单元数。

wEnhanced1CapAdjFac[2]

指定增强型内存类型 1 的容量调整因子。

dEnhanced2MaxNAllocU[4]

指定增强型内存类型 2 的最大分配单元数。

wEnhanced2CapAdjFac[2]

指定增强型内存类型 2 的容量调整因子。

dEnhanced3MaxNAllocU[4]

指定增强型内存类型 3 的最大分配单位数。

wEnhanced3CapAdjFac[2]

为增强型内存类型 3 指定容量调整因子。

dEnhanced4MaxNAllocU[4]

指定增强型内存类型 4 的最大分配单元数。

wEnhanced4CapAdjFac[2]

为增强型内存类型 4 指定容量调整因子。

dOptimalLogicalBlockSize[4]

指定最佳逻辑块大小。

  • bit [3:0]:正常内存类型
  • bit [7:4]:系统代码内存类型
  • bit [11:8]:非永久性内存类型
  • bit [15:12]:增强型内存类型 1
  • bit [19:16]:增强型内存类型 2
  • bit [23:20]:增强型内存类型 3
  • bit [27:24]:增强型内存类型 4
  • bit [31:28]:Reserved

bHPBRegionSize

指定 HPB 区域的大小。

bHPBNumberLU

指定可以启用 HPB 的最大逻辑单元数。

bHPBSubRegionSize

指定 HPB 子区域的大小。 bHPBSubRegionSize 不能超过 bHPBRegionSize

wDeviceMaxActiveHPBRegions

指定设备支持的活动 HPB 区域的 mximum 数量。

Reserved2[2]

保留供将来使用。

dWriteBoosterBufferMaxNAllocUnits[4]

指定设备支持的总 WriteBooster 缓冲区大小。 所有 LU 的 WriteBooster 缓冲区大小之和小于或等于 dWriteBoosterBufferMaxNAllocUnits 指示的值。

bDeviceMaxWriteBoosterLUs

指定支持的最大 WriteBooster 缓冲区数。

bWriteBoosterBufferCapAdjFac

指定 WriteBooster 缓冲区内存类型的容量调整因子。 在用户空间缩减模式下配置 WriteBooster 缓冲区时,此值提供 LBA 空间缩减乘数。 因此,仅当 bWriteBoosterBufferPreserveUserSpaceEn 0x00时,此参数才适用。

bSupportedWriteBoosterBufferUserSpaceReductionTypes

指定用户空间缩减模式的可支持性,并保留用户空间模式。

  • 0x00:只能在用户空间缩减类型中配置 WriteBooster 缓冲区。
  • ox01:WriteBooster 缓冲区只能在保留用户空间类型中配置。
  • ox02:可以在用户空间缩减类型或保留用户空间类型中配置设备。
  • 其他:保留

bSupportedWriteBoosterBufferTypes

指定 WriteBooster 缓冲区类型的可支持性。

  • 00h:基于 LU 的 WriteBooster 缓冲区配置
  • 01h:单个共享 WriteBooster 缓冲区配置
  • 02h:支持基于 LU 的 WriteBooster 缓冲区和单个共享 WriteBooster 缓冲区配置
  • 其他:保留

注解

如果传输的数据的大小超过 bRPMB_ReadWriteSize帧数,则会在多个安全命令中完成此操作。

正常内存类型的容量调整因子值等于 1。

要求

要求
最低受支持的客户端 Windows 10 版本 1709
最低受支持的服务器 Windows Server 2016
标头 ufs.h