структура 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  bHPBNumberLU;
  UCHAR  bHPBSubRegionSize;
  UCHAR  bHPBRegionSize;
  USHORT wDeviceMaxActiveHPBRegions;
  UCHAR  Reserved2[2];
  ULONG  dWriteBoosterBufferMaxNAllocUnits;
  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]

Задает оптимальный размер логического блока.

bHPBNumberLU

bHPBSubRegionSize

bHPBRegionSize

wDeviceMaxActiveHPBRegions

Reserved2[2]

dWriteBoosterBufferMaxNAllocUnits

bDeviceMaxWriteBoosterLUs

bWriteBoosterBufferCapAdjFac

bSupportedWriteBoosterBufferUserSpaceReductionTypes

bSupportedWriteBoosterBufferTypes

Комментарии

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

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

Требования

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