Поделиться через


структура 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 КБ или значение 0x08.

bOptimalReadBlockSize

Задает оптимальный размер блока чтения в единицах 512 байт.

bOptimalWriteBlockSize

Задает оптимальный размер блока записи в единицах 512 байт. bOptimalWriteBlockSize равно или больше bMinAddrBlockSize.

bMaxInBufferSize

Задает максимальный размер буфера данных в единицах в 512 байтах. Размер мини-суммы составляет 4 КБ или значение 0x08.

bMaxOutBufferSize

Задает максимальный размер буфера вывода данных в единицах 512 байт. Размер мини-суммы составляет 4 КБ или значение 0x08.

bRPMB_ReadWriteSize

Указывает максимальное количество кадров защищенного блока памяти (RPMB), разрешенного в протоколе безопасности и отключенном протоколе безопасности. Каждый кадр составляет 256 байт.

bDynamicCapacityResourcePolicy

Указывает политику управления ресурсами резервных блоков устройства. Содержит одно из следующих значений:

Ценность Описание
0x00 Политика управления ресурсами запасных блоков выполняется на логическую единицу.
0x01 Политика управления ресурсами запасных блоков — это тип памяти.

bDataOrdering

Указывает, поддерживает ли устройство передачу данных вне порядка. Содержит одно из следующих значений:

Ценность Описание
0x00 Передача данных вне порядка не поддерживается.
0x01 Поддерживается передача данных вне порядка.
Все остальные значения Зарезервировано для дальнейшего использования.

bMaxContexIDNumber

Задает максимальное количество контекстов, поддерживаемых устройством. Это число должно быть больше 5.

bSysDataTagUnitSize

Указывает размер единицы тега системных данных.

bSysDataTagResSize

Задает максимальный размер в байтах, выделенных устройством для обработки системных данных.

bSupportedSecRTypes

Указывает поддерживаемые типы безопасного удаления. Первые 3 бита переменной — это флаги, представляющие различные поддерживаемые типы безопасного удаления.

Бит Описание
0 Сведения удалены с удалением физической памяти.
1 Сведения удалены путем перезаписи адресных расположений с одним символом, за которым следует удаление.
2 Сведения удаляются путем перезаписи адресных расположений символом, его дополнением, а затем случайным символом.
3 Сведения удалены с помощью определяемого поставщиком механизма.
4-7 Зарезервировано для дальнейшего использования.

wSupportedMemoryTypes[2]

Указывает поддерживаемые типы памяти в растровом рисунке.

Бит Описание
0 Поддерживается обычный тип памяти.
1 Поддерживается тип памяти системного кода.
2 Поддерживается непрестойчивый тип памяти.
3 Поддерживается расширенный тип памяти 1.
4 Поддерживается расширенный тип памяти 2.
5 Поддерживается расширенный тип памяти 3.
6 Поддерживается расширенный тип памяти 4.
7-14 Зарезервировано для дальнейшего использования.
15 Поддерживается тип памяти RPMB.

dSystemCodeMaxNAllocU[4]

Указывает максимальное количество единиц выделения для системного кода для устройства.

wSystemCodeCapAdjFac[2]

Вид коэффициента корректировки емкости для типа памяти System Code.

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

Указывает размер ХПЧ. bHPBSubRegionSize не может превышать bHPBRegionSize.

wDeviceMaxActiveHPBRegions

Указывает количество активных регионов HPB, поддерживаемых устройством.

Reserved2[2]

Зарезервировано для дальнейшего использования.

dWriteBoosterBufferMaxNAllocUnits[4]

Указывает общий размер буфера WriteBooster, поддерживаемый устройством. Сумма размеров буфера WriteBooster для всех единиц LUs меньше или равна значению, указанному dWriteBoosterBufferMaxNAllocUnits.

bDeviceMaxWriteBoosterLUs

Указывает максимальное количество поддерживаемых буферов WriteBooster.

bWriteBoosterBufferCapAdjFac

Указывает коэффициент корректировки емкости для типа памяти буфера WriteBooster. Это значение предоставляет коэффициент умножения пространства LBA при настройке буфера WriteBooster в режиме сокращения пространства пользователя. Поэтому этот параметр применяется только в том случае, если bWriteBoosterBufferPreserveUserSpaceEn 0x00.

bSupportedWriteBoosterBufferUserSpaceReductionTypes

Указывает поддержку режима уменьшения пространства пользователя и сохранения режима пространства пользователя.

  • 0x00. Буфер WriteBooster можно настроить только в типе сокращения пространства пользователя.
  • ox01: буфер WriteBooster можно настроить только в сохранении типа пространства пользователя.
  • ox02: устройство можно настроить в типе уменьшения пространства пользователя или сохранить тип пространства пользователя.
  • Другие : зарезервировано

bSupportedWriteBoosterBufferTypes

Указывает поддержку типа буфера WriteBooster.

  • 00h: конфигурация буфера WriteBooster на основе LU
  • 01h: одна общая конфигурация буфера WriteBooster
  • 02h: поддержка буфера WriteBooster на основе LU и одной общей конфигурации буфера WriteBooster
  • Другие: зарезервированные

Замечания

Если размер передаваемых данных превышает количество кадров bRPMB_ReadWriteSize, он будет выполнен в нескольких командах безопасности.

Значение коэффициента корректировки емкости для обычного типа памяти равно одному.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1709
минимальный поддерживаемый сервер Windows Server 2016
заголовка ufs.h