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