Freigeben über


UFS_GEOMETRY_DESCRIPTOR Struktur (ufs.h)

UFS_GEOMETRY_DESCRIPTOR beschreibt die geometrischen Parameter eines Geräts.

Syntax

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;

Angehörige

bLength

Gibt die Länge des Deskriptors an.

bDescriptorIDN

Gibt den Typ des Deskriptors an. Dieser Deskriptor hat den Wert UFS_DESC_GEOMETRY_IDN.

bMediaTechnology

Reserviert für die zukünftige Verwendung.

Reserved1

Reserviert für die zukünftige Verwendung.

qTotalRawDeviceCapacity[8]

Gibt die gesamte rohe Gerätekapazität an. Ausgedrückt in Einheiten von 512 Bytes.

bMaxNumberLU

Gibt die maximale Anzahl logischer Einheiten an, die vom UFS (Universal Flash Storage) unterstützt werden. Enthält einen der folgenden Werte:

Wert Beschreibung
0x00 8 logische Einheiten.
0x01 32 logische Einheiten.
Andere Werte Reserviert für die zukünftige Verwendung.

dSegmentSize[4]

Gibt die Segmentgröße des Geräts in Einheiten von 512 Bytes an.

bAllocationUnitSize

Gibt die Zuordnungseinheitsgröße in der Anzahl der Segmente an.

bMinAddrBlockSize

Gibt die mindestgröße des adressierbaren Blocks in Einheiten von 512 Byte an. Die Mindestgröße beträgt 4 KB oder ein Wert von 0x08.

bOptimalReadBlockSize

Gibt die optimale Leseblockgröße in Einheiten von 512 Bytes an.

bOptimalWriteBlockSize

Gibt die optimale Schreibblockgröße in Einheiten von 512 Bytes an. bOptimalWriteBlockSize ist gleich oder größer als bMinAddrBlockSize.

bMaxInBufferSize

Gibt die maximale Größe des Datenpuffers in Einheiten von 512 Bytes an. Die Minisummengröße beträgt 4 KB oder ein Wert von 0x08.

bMaxOutBufferSize

Gibt die maximale Größe des Datenausgangspuffers in Einheiten von 512 Bytes an. Die Minisummengröße beträgt 4 KB oder ein Wert von 0x08.

bRPMB_ReadWriteSize

Gibt die maximale Anzahl von replay Protected Memory Block (RPMB)-Frames an, die in Security Protocol In und Security Protocol Out zulässig sind. Jeder Frame beträgt 256 Byte.

bDynamicCapacityResourcePolicy

Gibt die Ressourcenverwaltungsrichtlinie eines Geräts an. Enthält einen der folgenden Werte:

Wert Beschreibung
0x00 Die Ressourcenverwaltungsrichtlinie für Ersatzteile ist pro logische Einheit.
0x01 Die Ressourcenverwaltungsrichtlinie für Spare blocks ist pro Speichertyp.

bDataOrdering

Gibt an, ob ein Gerät out-of-order-Datenübertragung unterstützt. Enthält einen der folgenden Werte:

Wert Beschreibung
0x00 Out-of-Order-Datenübertragung wird nicht unterstützt.
0x01 Out-of-Order-Datenübertragung wird unterstützt.
Alle anderen Werte Reserviert für die zukünftige Verwendung.

bMaxContexIDNumber

Gibt die maximale Anzahl von Kontexten an, die von einem Gerät unterstützt werden. Diese Zahl muss größer als 5 sein.

bSysDataTagUnitSize

Gibt die Größe der Systemdatentageinheit an.

bSysDataTagResSize

Gibt die maximale Größe in Byte an, die vom Gerät zugewiesen werden, um Systemdaten zu verarbeiten.

bSupportedSecRTypes

Gibt die unterstützten Typen für sichere Entfernung an. Die ersten drei Bits der Variablen sind Flags, die unterschiedliche unterstützte Sichere Entfernungstypen darstellen.

Bit Beschreibung
0 Informationen, die mit einem Löschen des physischen Speichers entfernt wurden.
1 Informationen, die entfernt werden, indem die adressierten Speicherorte mit einem einzelnen Zeichen, gefolgt von einem Radierer, überschrieben werden.
2 Informationen, die entfernt werden, indem die adressierten Speicherorte mit einem Zeichen, dessen Ergänzung und dann ein zufälliges Zeichen überschrieben werden.
3 Informationen, die mithilfe eines vom Anbieter definierten Mechanismus entfernt wurden.
4-7 Reserviert für die zukünftige Verwendung.

wSupportedMemoryTypes[2]

Gibt die unterstützten Speichertypen in einer Bitmap an.

Bit Beschreibung
0 Ein normaler Speichertyp wird unterstützt.
1 Ein Systemcodespeichertyp wird unterstützt.
2 Ein nicht persistenter Speichertyp wird unterstützt.
3 Erweiterter Arbeitsspeichertyp 1 wird unterstützt.
4 Erweiterter Arbeitsspeichertyp 2 wird unterstützt.
5 Erweiterter Arbeitsspeichertyp 3 wird unterstützt.
6 Erweiterter Speichertyp 4 wird unterstützt.
7-14 Reserviert für die zukünftige Verwendung.
15 Ein RPMB-Speichertyp wird unterstützt.

dSystemCodeMaxNAllocU[4]

Gibt die maximale Anzahl von Zuordnungseinheiten für den Systemcode für ein Gerät an.

wSystemCodeCapAdjFac[2]

Gibt den Kapazitätsanpassungsfaktor für den Systemcodespeichertyp ab.

dNonPersistMaxNAllocU[4]

Gibt die maximale Anzahl von Zuordnungseinheiten für einen nicht persistenten Speichertyp ab.

wNonPersistCapAdjFac[2]

Gibt den Kapazitätsanpassungsfaktor für den nicht persistenten Speichertyp an.

dEnhanced1MaxNAllocU[4]

Gibt die maximale Anzahl von Zuordnungseinheiten für den erweiterten Speichertyp 1 an.

wEnhanced1CapAdjFac[2]

Gibt den Kapazitätsanpassungsfaktor für den erweiterten Speichertyp 1 an.

dEnhanced2MaxNAllocU[4]

Gibt die maximale Anzahl von Zuordnungseinheiten für den erweiterten Speichertyp 2 an.

wEnhanced2CapAdjFac[2]

Gibt den Kapazitätsanpassungsfaktor für den erweiterten Speichertyp 2 an.

dEnhanced3MaxNAllocU[4]

Gibt die maximale Anzahl von Zuordnungseinheiten für den erweiterten Speichertyp 3 an.

wEnhanced3CapAdjFac[2]

Gibt den Kapazitätsanpassungsfaktor für den erweiterten Speichertyp 3 an.

dEnhanced4MaxNAllocU[4]

Gibt die maximale Anzahl von Zuordnungseinheiten für den erweiterten Speichertyp 4 an.

wEnhanced4CapAdjFac[2]

Gibt den Kapazitätsanpassungsfaktor für den erweiterten Speichertyp 4 an.

dOptimalLogicalBlockSize[4]

Gibt die optimale logische Blockgröße an.

  • bit [3:0]: Normaler Speichertyp
  • bit [7:4]: Systemcodespeichertyp
  • bit [11:8]: Nicht persistenter Speichertyp
  • Bit [15:12]: Erweiterter Arbeitsspeichertyp 1
  • Bit [19:16]: Erweiterter Arbeitsspeichertyp 2
  • bit [23:20]: Erweiterter Arbeitsspeichertyp 3
  • bit [27:24]: Erweiterter Arbeitsspeichertyp 4
  • Bit [31:28]:Reserviert

bHPBRegionSize

Gibt die Größe der HPB-Region an.

bHPBNumberLU

Gibt die maximale Anzahl logischer Einheiten an, in denen HPB aktiviert werden kann.

bHPBSubRegionSize

Gibt die Größe des HPB-Unterbereichs an. Die bHPBSubRegionSize darf bHPBRegionSizenicht überschreiten.

wDeviceMaxActiveHPBRegions

Gibt die Mximum-Anzahl aktiver HPB-Regionen an, die vom Gerät unterstützt werden.

Reserved2[2]

Reserviert für die zukünftige Verwendung.

dWriteBoosterBufferMaxNAllocUnits[4]

Gibt die Gesamtgröße des WriteBooster-Puffers an, die vom Gerät unterstützt wird. Die Summe der WriteBooster-Puffergrößen für alle LUs ist kleiner oder gleich dem Wert, der durch dWriteBoosterBufferMaxNAllocUnitsangegeben wird.

bDeviceMaxWriteBoosterLUs

Gibt die maximale Anzahl der unterstützten WriteBooster-Puffer an.

bWriteBoosterBufferCapAdjFac

Gibt den Kapazitätsanpassungsfaktor für den WriteBooster-Pufferspeichertyp an. Dieser Wert stellt den Multiplikationsfaktor für die LBA-Raumreduzierung bereit, wenn der WriteBooster-Puffer im Modus zur Reduzierung des Benutzerraums konfiguriert ist. Daher gilt dieser Parameter nur, wenn bWriteBoosterBufferPreserveUserSpaceEn 0x00 ist.

bSupportedWriteBoosterBufferUserSpaceReductionTypes

Gibt die Unterstützung des Benutzerraumreduzierungsmodus an und behält den Benutzerraummodus bei.

  • 0x00: WriteBooster-Puffer kann nur im Benutzerraumreduzierungstyp konfiguriert werden.
  • ox01: WriteBooster-Puffer kann nur im beibehaltenen Benutzerbereichstyp konfiguriert werden.
  • ox02: Das Gerät kann entweder im Benutzerraumreduzierungstyp konfiguriert oder den Benutzerraumtyp beibehalten.
  • Andere: Reserviert

bSupportedWriteBoosterBufferTypes

Gibt die Unterstützung des WriteBooster-Puffertyps an.

  • 00h: LU-basierte WriteBooster-Pufferkonfiguration
  • 01h: Konfiguration des einzelnen freigegebenen WriteBooster-Puffers
  • 02h: Unterstützen der LU-basierten WriteBooster-Pufferkonfiguration und der konfiguration einzelner gemeinsam genutzter WriteBooster-Puffer
  • Andere: Reserviert

Bemerkungen

Wenn die Größe der übertragenen Daten die Anzahl der Frames bRPMB_ReadWriteSizeüberschreitet, erfolgt dies in mehreren Sicherheitsbefehlen.

Der Wert für den Kapazitätsanpassungsfaktor für einen normalen Speichertyp ist gleich einem Wert.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 1709
mindestens unterstützte Server- Windows Server 2016
Header- ufs.h