Compartilhar via


estrutura UFS_GEOMETRY_DESCRIPTOR (ufs.h)

UFS_GEOMETRY_DESCRIPTOR descreve os parâmetros geométricos de um dispositivo.

Sintaxe

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;

Membros

bLength

Especifica o comprimento do descritor.

bDescriptorIDN

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

bMediaTechnology

Reservado para uso futuro.

Reserved1

Reservado para uso futuro.

qTotalRawDeviceCapacity[8]

Especifica a capacidade total do dispositivo bruto. Expresso em unidades de 512 bytes.

bMaxNumberLU

Especifica o número máximo de unidades lógicas compatíveis com o UFS (Armazenamento Flash Universal). Contém um dos seguintes valores:

Valor Descrição
0x00 8 unidades lógicas.
0x01 32 unidades lógicas.
Outros valores Reservado para uso futuro.

dSegmentSize[4]

Especifica o tamanho do segmento do dispositivo em unidades de 512 bytes.

bAllocationUnitSize

Especifica o tamanho da unidade de alocação em número de segmentos.

bMinAddrBlockSize

Especifica o tamanho mínimo do bloco endereçável em unidades de 512 bytes. O tamanho mínimo é de 4 KB ou um valor de 0x08.

bOptimalReadBlockSize

Especifica o tamanho ideal do bloco de leitura em unidades de 512 bytes.

bOptimalWriteBlockSize

Especifica o tamanho ideal do bloco de gravação em unidades de 512 bytes. bOptimalWriteBlockSize é igual ou maior que bMinAddrBlockSize.

bMaxInBufferSize

Especifica o tamanho máximo do buffer de dados em unidades de 512 bytes. O tamanho do mínimo é de 4 KB ou um valor de 0x08.

bMaxOutBufferSize

Especifica o tamanho máximo do buffer de saída de dados em unidades de 512 bytes. O tamanho do mínimo é de 4 KB ou um valor de 0x08.

bRPMB_ReadWriteSize

Especifica o número máximo de quadros RPMB (Replay Protected Memory Block) permitidos no Protocolo de Segurança e protocolo de segurança fora. Cada quadro tem 256 bytes.

bDynamicCapacityResourcePolicy

Especifica a política de gerenciamento de recursos de blocos de reposição de um dispositivo. Contém um dos seguintes valores:

Valor Descrição
0x00 A política de gerenciamento de recursos de blocos de reposição é por unidade lógica.
0x01 A política de gerenciamento de recursos de blocos de reposição é por tipo de memória.

bDataOrdering

Especifica se um dispositivo dá suporte à transferência de dados fora de ordem. Contém um dos seguintes valores:

Valor Descrição
0x00 Não há suporte para transferência de dados fora de ordem.
0x01 Há suporte para a transferência de dados fora de ordem.
Todos os outros valores Reservado para uso futuro.

bMaxContexIDNumber

Especifica o número máximo de contextos com suporte por um dispositivo. Esse número deve ser maior que 5.

bSysDataTagUnitSize

Especifica o tamanho da unidade da marca de dados do sistema.

bSysDataTagResSize

Especifica o tamanho máximo em bytes alocados pelo dispositivo para lidar com dados do sistema.

bSupportedSecRTypes

Especifica os tipos de Remoção Segura com suporte. Os primeiros 3 bits da variável são sinalizadores que representam diferentes tipos de Remoção Segura com suporte.

Bit Descrição
0 Informações removidas com uma apagamento da memória física.
1 Informações removidas substituindo os locais endereçados com um único caractere seguido por uma apagamento.
2 Informações removidas substituindo os locais endereçados com um caractere, seu complemento e um caractere aleatório.
3 Informações removidas usando um mecanismo definido pelo fornecedor.
4-7 Reservado para uso futuro.

wSupportedMemoryTypes[2]

Especifica os tipos de memória com suporte em um bitmap.

Bit Descrição
0 Há suporte para um tipo de memória normal.
1 Há suporte para um tipo de memória de código do sistema.
2 Há suporte para um tipo de memória não persistente.
3 Há suporte para o tipo de memória avançado 1.
4 Há suporte para o tipo de memória avançado 2.
5 Há suporte para o tipo de memória avançado 3.
6 Há suporte para o tipo de memória avançado 4.
7-14 Reservado para uso futuro.
15 Há suporte para um tipo de memória RPMB.

dSystemCodeMaxNAllocU[4]

Especifica o número máximo de unidades de alocação para o Código do Sistema para um dispositivo.

wSystemCodeCapAdjFac[2]

Espécie o Fator de Ajuste de Capacidade para o tipo de memória do Código do Sistema.

dNonPersistMaxNAllocU[4]

Espécie o número máximo de Unidades de Alocação para um tipo de memória não persistente.

wNonPersistCapAdjFac[2]

Especifica o fator de ajuste de capacidade para o tipo de memória não persistente.

dEnhanced1MaxNAllocU[4]

Especifica o número máximo de Unidades de Alocação para o tipo de memória avançado 1.

wEnhanced1CapAdjFac[2]

Especifica o Fator de Ajuste de Capacidade para o tipo de memória avançado 1.

dEnhanced2MaxNAllocU[4]

Especifica o número máximo de Unidades de Alocação para o tipo de memória avançado 2.

wEnhanced2CapAdjFac[2]

Especifica o Fator de Ajuste de Capacidade para o tipo de memória avançado 2.

dEnhanced3MaxNAllocU[4]

Especifica o número máximo de Unidades de Alocação para o tipo de memória avançado 3.

wEnhanced3CapAdjFac[2]

Especifica o Fator de Ajuste de Capacidade para o tipo de memória avançado 3.

dEnhanced4MaxNAllocU[4]

Especifica o número máximo de Unidades de Alocação para o tipo de memória avançado 4.

wEnhanced4CapAdjFac[2]

Especifica o Fator de Ajuste de Capacidade para o tipo de memória avançado 4.

dOptimalLogicalBlockSize[4]

Especifica o tamanho ideal do bloco lógico.

  • bit [3:0]: Tipo de memória normal
  • bit [7:4]: Tipo de memória de código do sistema
  • bit [11:8]: tipo de memória não persistente
  • bit [15:12]: Memória aprimorada tipo 1
  • bit [19:16]: Memória aprimorada tipo 2
  • bit [23:20]: Memória aprimorada tipo 3
  • bit [27:24]: Memória aprimorada tipo 4
  • bit [31:28]:Reservado

bHPBRegionSize

Especifica o tamanho da região do HPB.

bHPBNumberLU

Especifica o número máximo de unidades lógicas nas quais o HPB pode ser habilitado.

bHPBSubRegionSize

Especifica o tamanho da sub-região do HPB. O bHPBSubRegionSize não pode exceder bHPBRegionSize.

wDeviceMaxActiveHPBRegions

Especifica o número mximum de regiões hpb ativas compatíveis com o dispositivo.

Reserved2[2]

Reservado para uso futuro.

dWriteBoosterBufferMaxNAllocUnits[4]

Especifica o tamanho total do buffer WriteBooster compatível com o dispositivo. A soma dos tamanhos de buffer WriteBooster para todas as LUs é menor ou igual ao valor indicado por dWriteBoosterBufferMaxNAllocUnits.

bDeviceMaxWriteBoosterLUs

Especifica o número máximo de buffers WriteBooster com suporte.

bWriteBoosterBufferCapAdjFac

Especifica o fator de ajuste de capacidade para o tipo de memória do buffer WriteBooster. Esse valor fornece o fator de multiplicação de redução de espaço LBA quando o Buffer WriteBooster é configurado no modo de redução de espaço do usuário. Portanto, esse parâmetro só se aplicará se bWriteBoosterBufferPreserveUserSpaceEn for 0x00.

bSupportedWriteBoosterBufferUserSpaceReductionTypes

Especifica a capacidade de suporte do modo de redução de espaço do usuário e preserva o modo de espaço do usuário.

  • 0x00: o buffer WriteBooster só pode ser configurado no tipo de redução de espaço do usuário.
  • ox01: o buffer WriteBooster só pode ser configurado na preservação do tipo de espaço do usuário.
  • ox02: o dispositivo pode ser configurado no tipo de redução de espaço do usuário ou preservar o tipo de espaço do usuário.
  • Outros: Reservado

bSupportedWriteBoosterBufferTypes

Especifica a capacidade de suporte do tipo de buffer WriteBooster.

  • 00h: Configuração do buffer WriteBooster baseada em LU
  • 01h: Configuração de buffer do WriteBooster compartilhado único
  • 02h: Suporte ao buffer WriteBooster baseado em LU e à configuração de buffer do WriteBooster compartilhado único
  • Outros: Reservado

Observações

Se o tamanho dos dados transferidos exceder o número de quadros bRPMB_ReadWriteSize, isso será feito em vários comandos de segurança.

O valor do Fator de Ajuste de Capacidade para um tipo de memória normal é igual a um.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10, versão 1709
servidor com suporte mínimo Windows Server 2016
cabeçalho ufs.h