estrutura UFS_DEVICE_DESCRIPTOR (ufs.h)

UFS_DEVICE_DESCRIPTOR é o descritor main para dispositivos UFS (Armazenamento Flash Universal) e deve ser o primeiro descritor recuperado, pois especifica a classe de dispositivo e a subclasse e o protocolo (conjunto de comandos) a ser usado para acessar esse dispositivo e o número máximo de unidades lógicas contidas no dispositivo.

Sintaxe

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;

Membros

bLength

Especifica o comprimento, em bytes, desse descritor.

bDescriptorIDN

Especifica o tipo do descritor. Esse descritor terá um valor de UFS_DESC_DEVICE_IDN.

bDevice

Especifica o tipo de dispositivo.

Valor Descrição
0x00 Dispositivo
Todos os outros valores Reservado para uso futuro

bDeviceClass

Especifica a classe de dispositivo.

Valor Descrição
0x00 Armazenamento em massa
Todos os outros valores Reservado para uso futuro

bDeviceSubClass

Especifica as subclasses de armazenamento em massa do UFS em um mapa de bits da seguinte maneira:

bit Valor
0 Inicializável/não inicializável
1 Inserido/Removível
2 Reservado para JESD220-1 (UME)
Todos os outros valores Reservado para uso futuro

bProtocol

Especifica o suporte ao protocolo pelo dispositivo UFS.

Valor Descrição
0x00 SCSI
Todos os outros valores Reservado para uso futuro

bNumberLU

Especifica o número de unidades lógicas. Isso não inclui o número de unidades lógicas conhecidas.

bNumberWLU

Especifica o número de unidades lógicas conhecidas.

bBootEnable

Especifica se o recurso de inicialização de um dispositivo está habilitado.

Valor Descrição
0x00 Recurso de inicialização desabilitado
0x01 Recurso de inicialização habilitado
Todos os outros valores Reservado para uso futuro

bDescrAccessEn

Indica se o Descritor de Dispositivo pode ser lido após a fase de inicialização parcial da sequência de inicialização.

Valor Descrição
0x00 Acesso de descritor de dispositivo desabilitado
0x01 Acesso do Descritor de Dispositivo habilitado
Todos os outros valores Reservado para uso futuro

bInitPowerMode

bInitPowerMode define o Modo de Energia após a inicialização do dispositivo ou a redefinição de hardware.

Valor Descrição
0x00 modo UFS-Sleep
0x01 Modo ativo
Todos os outros valores Reservado para uso futuro

bHighPriorityLUN

bHighPriorityLUN define a unidade lógica de alta prioridade.

bSecureRemovalType

Especifica o tipo de remoção segura.

Valor Descrição
0x00 Informações removidas por uma apagamento da memória física
0x01 Informações removidas substituindo os locais endereçados por um único caractere seguido por uma apagamento
0x02 Informações removidas substituindo os locais endereçados por um caractere, seu complemento e um caractere aleatório
0x03 Informações removidas usando um mecanismo definido pelo fornecedor.
Todos os outros valores Reservado para uso futuro

bSecurityLU

Especifica se há suporte para LU de segurança

Valor Descrição
0x00 Sem suporte
0x01 RPMB (Bloco de Memória Protegida de Reprodução)
Todos os outros valores Reservado para uso futuro

bBackgroundOpsTermLat

bBackgroundOpsTermLat define a latência máxima para iniciar a transmissão de dados quando as operações em segundo plano estão em andamento. O limite de latência de término se aplica a dois casos:

  • Quando o dispositivo recebe um COMMAND UFS Protocol Information Units (UPIU) com uma solicitação de transferência. O dispositivo deve iniciar a transferência de dados e enviar um DATA IN UPIU ou UM RTT UPIU dentro do limite de latência.
  • Quando o dispositivo recebe a SOLICITAÇÃO DE CONSULTA UPIU para limpar o sinalizador fBackgroundOpsEn . Espera-se que o dispositivo encerre as operações em segundo plano dentro do limite de latência.

bInitActiveICCLevel

bInitActiveICCLevel define o valor bActiveICCLevel após ligar ou redefinir. O intervalo do valor é de 0x00 a 0x0F.

wSpecVersion[2]

Indica a versão de especificação no formato BCD (Binary Coded Decimal).

wManufactureDate[2]

Especifica a data de fabricação no formato BCD como 0xMMYY.

iManufacturerName

Contém um valor de índice para a cadeia de caracteres que contém o nome do fabricante.

iProductName

Contém um valor de índice para a cadeia de caracteres que contém o nome do produto.

iSerialNumberID

Contém um valor de índice para a cadeia de caracteres que contém o número da série.

iOemID

Contém um valor de índice para a cadeia de caracteres que contém a ID do OEM.

wManufacturerID[2]

Especifica a ID do Fabricante do dispositivo.

bUD0BaseOffset

Especifica o deslocamento dos parâmetros configuráveis do Descritor de Unidade 0 no Descritor de Configuração , UFS_CONFIG_DESCRIPTOR.

bUDConfigPLength

Tamanho total dos parâmetros de um UFS_UNIT_CONFIG_DESCRIPTOR.

bDeviceRTTCap

Especifica o número máximo de READY TO TRANSFER UPIU pendentes com suporte pelo dispositivo. O valor mínimo é 2.

wPeriodicRTCUpdate[2]

Especifica a frequência e o método das atualizações de relógio em tempo real. Os bits de 10 a 15 são reservados.

bUFSFeaturesSupport

Especifica quais recursos têm suporte neste dispositivo. Um recurso terá suporte se o bit relacionado estiver definido como 1.

bit Valor
0 Atualização de firmware de campo (FFU)
1 Psa (Reconhecimento do Estado de Produção)
2 Intervalo de vida do dispositivo
Todos os outros valores Reservado para uso futuro

bFFUTimeout

O tempo máximo, em segundos, ao qual o acesso ao dispositivo é limitado ou não é possível por meio de portas associadas devido à execução de um comando WRITE BUFFER.

bQueueDepth

Especifica a profundidade da fila. Se esse membro for igual a 0, o dispositivo implementará a arquitetura de enfileiramento por LU.

wDeviceVersion[2]

Especifica a versão do dispositivo.

bNumSecureWPArea

Especifica o número total de Áreas de Proteção de Gravação Segura compatíveis com o dispositivo. O valor desse membro é entre bNumberLU e 32.

dPSAMaxDataSize[4]

Especifica a quantidade máxima de dados que podem ser gravados durante a fase de pré-soldagem do fluxo psa.

dPSAStateTimeout

Esse membro corresponde a bPSAStateTimeout (29h) na especificação JEDEC.

iProductRevisionLevel

Especifica o índice para a cadeia de caracteres que contém o Nível de Revisão do Produto.

Reserved[5]

Reservado para uso futuro.

Reserved2[16]

Reservado para uso futuro.

wHPBVersion

bHPBControl

Reserved3[12]

dExtendedUFSFeaturesSupport[4]

bWriteBoosterBufferPreserveUserSpaceEn

bWriteBoosterBufferType

dNumSharedWriteBoosterBufferAllocUnits[4]

Comentários

Se bBootEnable no UFS_DEVICE_DESCRIPTOR estiver definido como zero ou se a unidade lógica de inicialização bem conhecida não for mapeada para uma unidade lógica habilitada, a unidade lógica bem conhecida de Inicialização será encerrada.

UFS_DEVICE_DESCRIPTOR é somente leitura, alguns de seus parâmetros podem ser alterados alterando o parâmetro correspondente em UFS_UNIT_CONFIG_DESCRIPTOR.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1709
Servidor mínimo com suporte Windows Server 2016
Cabeçalho ufs.h

Confira também

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