Partager via


UFS_GEOMETRY_DESCRIPTOR structure (ufs.h)

UFS_GEOMETRY_DESCRIPTOR décrit les paramètres géométriques d’un appareil.

Syntaxe

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;

Membres

bLength

Spécifie la longueur du descripteur.

bDescriptorIDN

Spécifie le type du descripteur. Ce descripteur aura la valeur UFS_DESC_GEOMETRY_IDN.

bMediaTechnology

Réservé à un usage ultérieur.

Reserved1

Réservé à un usage ultérieur.

qTotalRawDeviceCapacity[8]

Spécifie la capacité brute totale de l’appareil. Exprimé en unités de 512 octets.

bMaxNumberLU

Spécifie le nombre maximal d’unités logiques prises en charge par l’UFS (Universal Flash Storage). Contient l’une des valeurs suivantes :

Valeur Description
0x00 8 unités logiques.
0x01 32 unités logiques.
Autres valeurs Réservé pour un usage futur.

dSegmentSize[4]

Spécifie la taille du segment de l’appareil en unités de 512 octets.

bAllocationUnitSize

Spécifie la taille de l’unité d’allocation en nombre de segments.

bMinAddrBlockSize

Spécifie la taille minimale du bloc adressable en unités de 512 octets. La taille minimale est de 4 Ko ou une valeur de 0x08.

bOptimalReadBlockSize

Spécifie la taille optimale du bloc de lecture en unités de 512 octets.

bOptimalWriteBlockSize

Spécifie la taille de bloc d’écriture optimale en unités de 512 octets. bOptimalWriteBlockSize est égal ou supérieur à bMinAddrBlockSize.

bMaxInBufferSize

Spécifie la taille maximale de la mémoire tampon de données entrantes en unités de 512 octets. La taille du minium est de 4 Ko ou une valeur de 0x08.

bMaxOutBufferSize

Spécifie la taille maximale de la mémoire tampon de sortie de données en unités de 512 octets. La taille du minium est de 4 Ko ou une valeur de 0x08.

bRPMB_ReadWriteSize

Spécifie le nombre maximal de trames RPMB (Replay Protected Memory Block) autorisées dans le protocole de sécurité entrant et le protocole de sécurité sortant. Chaque image est de 256 octets.

bDynamicCapacityResourcePolicy

Spécifie la stratégie de gestion des ressources des blocs de rechange d’un appareil. Contient l’une des valeurs suivantes :

Valeur Description
0x00 La stratégie de gestion des ressources des blocs de rechange est par unité logique.
0x01 La stratégie de gestion des ressources des blocs de rechange est par type de mémoire.

bDataOrdering

Spécifie si un appareil prend en charge le transfert de données en désordre. Contient l’une des valeurs suivantes :

Valeur Description
0x00 Le transfert de données en désordre n’est pas pris en charge.
0x01 Le transfert de données en désordre est pris en charge.
Toutes les autres erreurs Réservé pour un usage futur.

bMaxContexIDNumber

Spécifie le nombre maximal de contextes pris en charge par un appareil. Ce nombre doit être supérieur à 5.

bSysDataTagUnitSize

Spécifie la taille de l’unité de balise de données système.

bSysDataTagResSize

Spécifie la taille maximale en octets allouée par l’appareil pour gérer les données système.

bSupportedSecRTypes

Spécifie les types de suppression sécurisée pris en charge. Les 3 premiers bits de la variable sont des indicateurs qui représentent différents types de suppression sécurisée pris en charge.

bit Description
0 Informations supprimées avec une effacement de la mémoire physique.
1 Informations supprimées en remplaçant les emplacements adressés par un caractère unique suivi d’une effacement.
2 Informations supprimées en remplaçant les emplacements adressés par un caractère, son complément, puis un caractère aléatoire.
3 Informations supprimées à l’aide d’un mécanisme défini par le fournisseur.
4-7 Réservé pour un usage futur.

wSupportedMemoryTypes[2]

Spécifie les types de mémoire pris en charge dans une bitmap.

bit Description
0 Un type de mémoire normal est pris en charge.
1 Un type de mémoire de code système est pris en charge.
2 Un type de mémoire non persistant est pris en charge.
3 Le type de mémoire amélioré 1 est pris en charge.
4 Le type de mémoire amélioré 2 est pris en charge.
5 Le type de mémoire amélioré 3 est pris en charge.
6 Le type de mémoire amélioré 4 est pris en charge.
7-14 Réservé pour un usage futur.
15 Un type de mémoire RPMB est pris en charge.

dSystemCodeMaxNAllocU[4]

Spécifie le nombre maximal d’unités d’allocation pour le code système d’un appareil.

wSystemCodeCapAdjFac[2]

Espèce le facteur d’ajustement de capacité pour le type de mémoire code système.

dNonPersistMaxNAllocU[4]

Indique le nombre maximal d’unités d’allocation pour un type de mémoire non persistant.

wNonPersistCapAdjFac[2]

Spécifie le facteur d’ajustement de capacité pour le type de mémoire non persistant.

dEnhanced1MaxNAllocU[4]

Spécifie le nombre maximal d’unités d’allocation pour le type de mémoire amélioré 1.

wEnhanced1CapAdjFac[2]

Spécifie le facteur d’ajustement de capacité pour le type de mémoire amélioré 1.

dEnhanced2MaxNAllocU[4]

Spécifie le nombre maximal d’unités d’allocation pour le type de mémoire amélioré 2.

wEnhanced2CapAdjFac[2]

Spécifie le facteur d’ajustement de capacité pour le type de mémoire amélioré 2.

dEnhanced3MaxNAllocU[4]

Spécifie le nombre maximal d’unités d’allocation pour le type de mémoire amélioré 3.

wEnhanced3CapAdjFac[2]

Spécifie le facteur d’ajustement de capacité pour le type de mémoire amélioré 3.

dEnhanced4MaxNAllocU[4]

Spécifie le nombre maximal d’unités d’allocation pour le type de mémoire amélioré 4.

wEnhanced4CapAdjFac[2]

Spécifie le facteur d’ajustement de capacité pour le type de mémoire amélioré 4.

dOptimalLogicalBlockSize[4]

Spécifie la taille de bloc logique optimale.

  • bit [3 :0] : type de mémoire normal
  • bit [7 :4] : type de mémoire du code système
  • bit [11 :8] : type de mémoire non persistant
  • bit [15 :12] : type de mémoire amélioré 1
  • bit [19 :16] : type de mémoire amélioré 2
  • bit [23 :20] : type de mémoire amélioré 3
  • bit [27 :24] : type de mémoire amélioré 4
  • bit [31 :28] :Reserved

bHPBRegionSize

Spécifie la taille de la région HPB.

bHPBNumberLU

Spécifie le nombre maximal d’unités logiques dans lesquelles HPB peut être activé.

bHPBSubRegionSize

Spécifie la taille de l’sous-région HPB. BHPBSubRegionSize ne peut pas dépasser bHPBRegionSize.

wDeviceMaxActiveHPBRegions

Spécifie le nombre mximum de régions HPB actives prises en charge par l’appareil.

Reserved2[2]

Réservé pour un usage futur.

dWriteBoosterBufferMaxNAllocUnits[4]

Spécifie la taille totale de la mémoire tampon WriteBooster prise en charge par l’appareil. La somme des tailles de mémoire tampon WriteBooster pour toutes les unités logiques est inférieure ou égale à la valeur indiquée par dWriteBoosterBufferMaxNAllocUnits.

bDeviceMaxWriteBoosterLUs

Spécifie le nombre maximal de mémoires tampons WriteBooster prises en charge.

bWriteBoosterBufferCapAdjFac

Spécifie le facteur d’ajustement de capacité pour le type de mémoire tampon WriteBooster. Cette valeur fournit le facteur de multiplication de la réduction de l’espace LBA lorsque la mémoire tampon WriteBooster est configurée en mode de réduction de l’espace utilisateur. Par conséquent, ce paramètre s’applique uniquement si bWriteBoosterBufferPreserveUserSpaceEn est 0x00.

bSupportedWriteBoosterBufferUserSpaceReductionTypes

Spécifie la prise en charge du mode de réduction de l’espace utilisateur et la conservation du mode d’espace utilisateur.

  • 0x00 : la mémoire tampon WriteBooster ne peut être configurée que dans le type de réduction de l’espace utilisateur.
  • ox01 : la mémoire tampon WriteBooster ne peut être configurée que dans le type d’espace utilisateur de conservation.
  • ox02 : l’appareil peut être configuré en type de réduction de l’espace utilisateur ou en type d’espace utilisateur.
  • Autres : Réservé

bSupportedWriteBoosterBufferTypes

Spécifie la prise en charge du type de mémoire tampon WriteBooster.

  • 00h : Configuration de la mémoire tampon WriteBooster basée sur lu
  • 01h : Configuration de la mémoire tampon WriteBooster partagée unique
  • 02h : Prise en charge de la mémoire tampon WriteBooster basée sur lu et de la configuration de mémoire tampon WriteBooster partagée unique
  • Autres : Réservé

Remarques

Si la taille des données transférées dépasse le nombre de trames bRPMB_ReadWriteSize, cette opération est effectuée dans plusieurs commandes de sécurité.

La valeur du facteur d’ajustement de capacité pour un type de mémoire normal est égale à un.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1709
Serveur minimal pris en charge Windows Server 2016
En-tête ufs.h