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 serem usados para acessar esse dispositivo e o número máximo de LUs (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 ou não inicializável |
1 | Inserido ou 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 do 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 um apagamento da memória física |
0x01 | Informações removidas substituindo os locais endereçados com um único caractere seguido por um apagamento |
0x02 | Informações removidas substituindo os locais endereçados com 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 unidades lógicas 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 decimal codificado binário (BCD).
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 de 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
Especifica a versão do booster de desempenho do host.
bHPBControl
Reserved3[12]
Reservado para uso futuro.
dExtendedUFSFeaturesSupport[4]
dExtendedUFSFeaturesSupport é uma máscara de bits que indica quais recursos estendidos têm suporte.
bWriteBoosterBufferPreserveUserSpaceEn
Definir bWriteBoosterBufferPreserveUserSpaceEn como 0x01 evita a redução do espaço total do usuário que pode ser configurado durante o provisionamento, mas pode resultar em um desempenho menor. Se bWriteBoosterBufferPreserveUserSpaceEn estiver definido como 0x00, o buffer de backup de gravação reduzirá o espaço total do usuário que pode ser configurado durante o provisionamento.
bWriteBoosterBufferType
bWriteBoosterBufferType configura o tipo de buffer de backup de gravação. Um valor de 0x00 especifica o modo de buffer dedicado da unidade lógica. Um valor de 0x01 especifica o modo de buffer compartilhado.
dNumSharedWriteBoosterBufferAllocUnits[4]
dNumSharedWriteBoosterBufferAllocUnits especifica o tamanho do buffer de reforço de gravação para uma configuração de buffer de backup de gravação compartilhada.
Comentários
Se bBootEnable no UFS_DEVICE_DESCRIPTOR estiver definido como zero ou se a Unidade Lógica Bem Conhecida de Inicialização 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 |