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

См. также раздел

UFS_CONFIG_DESCRIPTOR

UFS_DEVICE_HEALTH_DESCRIPTOR

UFS_GEOMETRY_DESCRIPTOR

UFS_INTERCONNECT_DESCRIPTOR

UFS_POWER_DESCRIPTOR

UFS_RPMB_UNIT_DESCRIPTOR

UFS_STRING_DESCRIPTOR

UFS_UNIT_CONFIG_DESCRIPTOR

UFS_UNIT_DESCRIPTOR