структура 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 |