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


структура 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 бита переменной представляют собой флаги, представляющие различные поддерживаемые типы безопасного удаления.

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

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

Reserved2[2]

Зарезервировано для последующего использования.

dWriteBoosterBufferMaxNAllocUnits[4]

Указывает общий размер буфера WriteBooster, поддерживаемый устройством. Сумма размеров буфера WriteBooster для всех единиц обслуживания меньше или равна значению, указанному в 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, это можно сделать с помощью нескольких команд безопасности.

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

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1709
Минимальная версия сервера Windows Server 2016
Верхняя часть ufs.h