Partager via


structure UFS_GEOMETRY_DESCRIPTOR (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 une valeur de UFS_DESC_GEOMETRY_IDN.

bMediaTechnology

Réservé pour une utilisation ultérieure.

Reserved1

Réservé pour une utilisation ultérieure.

qTotalRawDeviceCapacity[8]

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

bMaxNumberLU

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

Valeur Description
0x00 8 unités logiques.
0x01 32 unités logiques.
Autres valeurs Réservé pour une utilisation ultérieure.

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 optimale du bloc d’écriture 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 dans les 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é in and Security Protocol Out. 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 de blocs de rechange est par unité logique.
0x01 La stratégie de gestion des ressources de blocs de rechange est par type de mémoire.

bDataOrdering

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

Valeur Description
0x00 Le transfert de données hors commande n’est pas pris en charge.
0x01 Le transfert de données hors commande est pris en charge.
Toutes les autres valeurs Réservé pour une utilisation ultérieure.

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é d’étiquette de données système.

bSysDataTagResSize

Spécifie la taille maximale en octets alloués 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é pris en charge.

Mors 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 traité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 une utilisation ultérieure.

wSupportedMemoryTypes[2]

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

Mors 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 une utilisation ultérieure.
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 du 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 la sous-région HPB. Le 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 une utilisation ultérieure.

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 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 conserve le mode 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é dans le type de réduction de l’espace utilisateur ou conserver le 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 l’unité logique
  • 01h : Configuration de mémoire tampon WriteBooster partagée unique
  • 02h : Prise en charge de la mémoire tampon WriteBooster basée sur l’unité logique 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 d’images bRPMB_ReadWriteSize, elle 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 à une.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1709
serveur minimum pris en charge Windows Server 2016
d’en-tête ufs.h