структура UFS_DEVICE_DESCRIPTOR (ufs.h)
UFS_DEVICE_DESCRIPTOR является дескриптором main для устройств универсального хранилища флэш-памяти (UFS) и должен быть первым извлеченным дескриптором, так как он указывает класс устройства и подкласс, а также протокол (набор команд), используемый для доступа к этому устройству, а также максимальное количество логических единиц, содержащихся на устройстве.
Синтаксис
typedef struct {
UCHAR bLength;
UCHAR bDescriptorIDN;
UCHAR bDevice;
UCHAR bDeviceClass;
UCHAR bDeviceSubClass;
UCHAR bProtocol;
UCHAR bNumberLU;
UCHAR bNumberWLU;
UCHAR bBootEnable;
UCHAR bDescrAccessEn;
UCHAR bInitPowerMode;
UCHAR bHighPriorityLUN;
UCHAR bSecureRemovalType;
UCHAR bSecurityLU;
UCHAR bBackgroundOpsTermLat;
UCHAR bInitActiveICCLevel;
UCHAR wSpecVersion[2];
UCHAR wManufactureDate[2];
UCHAR iManufacturerName;
UCHAR iProductName;
UCHAR iSerialNumberID;
UCHAR iOemID;
UCHAR wManufacturerID[2];
UCHAR bUD0BaseOffset;
UCHAR bUDConfigPLength;
UCHAR bDeviceRTTCap;
UCHAR wPeriodicRTCUpdate[2];
UCHAR bUFSFeaturesSupport;
UCHAR bFFUTimeout;
UCHAR bQueueDepth;
UCHAR wDeviceVersion[2];
UCHAR bNumSecureWPArea;
UCHAR dPSAMaxDataSize[4];
UCHAR dPSAStateTimeout;
UCHAR iProductRevisionLevel;
UCHAR Reserved[5];
UCHAR Reserved2[16];
USHORT wHPBVersion;
UCHAR bHPBControl;
UCHAR Reserved3[12];
UCHAR dExtendedUFSFeaturesSupport[4];
UCHAR bWriteBoosterBufferPreserveUserSpaceEn;
UCHAR bWriteBoosterBufferType;
UCHAR dNumSharedWriteBoosterBufferAllocUnits[4];
} UFS_DEVICE_DESCRIPTOR, *PUFS_DEVICE_DESCRIPTOR;
Члены
bLength
Указывает длину (в байтах) этого дескриптора.
bDescriptorIDN
Указывает тип дескриптора. Этот дескриптор будет иметь значение UFS_DESC_DEVICE_IDN.
bDevice
Указывает тип устройства.
Значение | Описание |
---|---|
0x00 | Устройство |
Все остальные значения | Зарезервировано для использования в будущем. |
bDeviceClass
Указывает класс устройства.
Значение | Описание |
---|---|
0x00 | Массовое хранилище |
Все остальные значения | Зарезервировано для использования в будущем. |
bDeviceSubClass
Указывает подклассы хранилища UFS в битовой карте следующим образом:
bit | Значение |
---|---|
0 | Загрузочный или незагрузочный |
1 | Встроенные или съемные |
2 | Зарезервировано для JESD220-1 (UME) |
Все остальные значения | Зарезервировано для использования в будущем. |
bProtocol
Указывает поддержку протокола устройством UFS.
Значение | Описание |
---|---|
0x00 | SCSI |
Все остальные значения | Зарезервировано для использования в будущем. |
bNumberLU
Указывает количество логических единиц. Сюда не входит число хорошо известных логических единиц.
bNumberWLU
Указывает количество хорошо известных логических единиц.
bBootEnable
Указывает, включена ли функция загрузки устройства.
Значение | Описание |
---|---|
0x00 | Функция загрузки отключена |
0x01 | Функция загрузки включена |
Все остальные значения | Зарезервировано для использования в будущем. |
bDescrAccessEn
Указывает, можно ли считать дескриптор устройства после этапа частичной инициализации последовательности загрузки.
Значение | Описание |
---|---|
0x00 | Доступ к дескриптору устройства отключен |
0x01 | Доступ к дескриптору устройства включен |
Все остальные значения | Зарезервировано для использования в будущем. |
bInitPowerMode
bInitPowerMode определяет режим питания после инициализации устройства или сброса оборудования.
Значение | Описание |
---|---|
0x00 | режим UFS-Sleep |
0x01 | Активный режим |
Все остальные значения | Зарезервировано для использования в будущем. |
bHighPriorityLUN
bHighPriorityLUN определяет логическую единицу с высоким приоритетом.
bSecureRemovalType
Указывает тип безопасного удаления.
Значение | Описание |
---|---|
0x00 | Сведения, удаленные путем очистки физической памяти |
0x01 | Сведения, удаленные путем перезаписи адресных расположений одним символом, за которым следует стирание |
0x02 | Сведения удаляются путем перезаписи адресных расположений символом, его дополнением, а затем случайным символом |
0x03 | Сведения удаляются с помощью механизма, определяемого поставщиком. |
Все остальные значения | Зарезервировано для использования в будущем. |
bSecurityLU
Указывает, поддерживается ли LU безопасности.
Значение | Описание |
---|---|
0x00 | Не поддерживается |
0x01 | Воспроизведение блока защищенной памяти (RPMB) |
Все остальные значения | Зарезервировано для использования в будущем. |
bBackgroundOpsTermLat
bBackgroundOpsTermLat определяет максимальную задержку при запуске передачи данных при выполнении фоновых операций. Ограничение задержки завершения применяется к двум случаям:
- Когда устройство получает блоки ИНФОРМАЦИИ по протоколу COMMAND UFS (UPIU) с запросом на передачу. Устройство должно начать передачу данных и отправить ДАННЫЕ В UPIU или RTT UPIU в пределах предельной задержки.
- Когда устройство получает ЗАПРОС ЗАПРОСА UPIU для очистки флага fBackgroundOpsEn . Ожидается, что устройство завершит фоновые операции в пределах предельной задержки.
bInitActiveICCLevel
bInitActiveICCLevel определяет значение bActiveICCLevel после включения или сброса питания. Диапазон значения — от 0x00 до 0x0F.
wSpecVersion[2]
Указывает версию спецификации в двоичном десятичном формате (BCD).
wManufactureDate[2]
Указывает дату производства в формате BCD как 0xMMYY.
iManufacturerName
Содержит значение индекса для строки, содержащей имя производителя.
iProductName
Содержит значение индекса для строки, содержащей имя продукта.
iSerialNumberID
Содержит значение индекса для строки, содержащей номер последовательности.
iOemID
Содержит значение индекса для строки, содержащей идентификатор изготовителя оборудования.
wManufacturerID[2]
Указывает идентификатор производителя устройства.
bUD0BaseOffset
Задает настраиваемые параметры смещения дескриптора единиц измерения 0 в дескрипторове конфигурации UFS_CONFIG_DESCRIPTOR.
bUDConfigPLength
Общий размер параметров UFS_UNIT_CONFIG_DESCRIPTOR.
bDeviceRTTCap
Указывает максимальное число необработанных запросов READY TO TRANSFER UPIU, поддерживаемых устройством. Минимальное значение — 2.
wPeriodicRTCUpdate[2]
Указывает частоту и метод обновления часов в режиме реального времени. Биты от 10 до 15 зарезервированы.
bUFSFeaturesSupport
Указывает, какие функции поддерживаются на этом устройстве. Функция поддерживается, если ее связанный бит имеет значение 1.
bit | Значение |
---|---|
0 | Обновление встроенного ПО поля (FFU) |
1 | Сведения о состоянии производства (PSA) |
2 | Продолжительность жизни устройства |
Все остальные значения | Зарезервировано для использования в будущем. |
bFFUTimeout
Максимальное время (в секундах), в течение которого доступ к устройству ограничен или невозможен через порты, связанные из-за выполнения команды WRITE BUFFER.
bQueueDepth
Задает глубину очереди. Если этот элемент равен 0, устройство реализует архитектуру очередей по lu.
wDeviceVersion[2]
Указывает версию устройства.
bNumSecureWPArea
Указывает общее количество защищенных областей безопасной записи, поддерживаемых устройством. Значение этого элемента находится в диапазоне от bNumberLU до 32.
dPSAMaxDataSize[4]
Указывает максимальный объем данных, которые можно записать на этапе предварительной пайки потока PSA.
dPSAStateTimeout
Этот элемент соответствует bPSAStateTimeout (29h) в спецификации JEDEC.
iProductRevisionLevel
Указывает индекс строки, содержащей уровень редакции продукта.
Reserved[5]
Зарезервировано для будущего использования.
Reserved2[16]
Зарезервировано для будущего использования.
wHPBVersion
bHPBControl
Reserved3[12]
dExtendedUFSFeaturesSupport[4]
bWriteBoosterBufferPreserveUserSpaceEn
bWriteBoosterBufferType
dNumSharedWriteBoosterBufferAllocUnits[4]
Комментарии
Если параметр bBootEnable в UFS_DEVICE_DESCRIPTOR имеет значение ноль или если общеизвестная логическая единица загрузки не сопоставлена с включенной логической единицей, то общеизвестная логическая единица загрузки должна завершиться.
UFS_DEVICE_DESCRIPTOR доступно только для чтения, некоторые из его параметров можно изменить, изменив соответствующий параметр в UFS_UNIT_CONFIG_DESCRIPTOR.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 1709 |
Минимальная версия сервера | Windows Server 2016 |
Верхняя часть | ufs.h |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по