UFS_UNIT_DESCRIPTOR structure (ufs.h)
The UFS_UNIT_DESCRIPTOR structure describes a generic unit descriptor.
Syntax
typedef struct {
UCHAR bLength;
UCHAR bDescriptorIDN;
UCHAR bUnitIndex;
UCHAR bLUEnable;
UCHAR bBootLunID;
UCHAR bLUWriteProtect;
UCHAR bLUQueueDepth;
UCHAR bPSASensitive;
UCHAR bMemoryType;
UCHAR bDataReliability;
UCHAR bLogicalBlockSize;
UCHAR qLogicalBlockCount[8];
UCHAR dEraseBlockSize[4];
UCHAR bProvisioningType;
UCHAR qPhyMemResourceCount[8];
UCHAR wContextCapabilities[2];
UCHAR bLargeUnitGranularity_M1;
USHORT wLUMaxActiveHPBRegions;
USHORT wHPBPinnedRegionStartIdx;
USHORT wNumHPBPinnedRegions;
ULONG dLUNumWriteBoosterBufferAllocUnits;
} UFS_UNIT_DESCRIPTOR, *PUFS_UNIT_DESCRIPTOR;
Members
bLength
Specifies the length, in bytes, of this descriptor.
bDescriptorIDN
Specifies the type of the descriptor. This descriptor will have a value of UFS_DESC_UNIT_IDN.
bUnitIndex
Specifies unit index
bLUEnable
Specifies if the logic unit number (LUN) is enabled. If bLUEnable is equal to 0x00, the logical unit is disabled.
bBootLunID
bLUWriteProtect
Specifies if the logical unit is write-protected. Contains one of the following values:
Value | Description |
---|---|
0x00 | The logical unit is not write protected. |
0x01 | The logical unit is write protected. |
0x02 | The logical unit is permanently write protected. |
bLUQueueDepth
Specifies the logical unit queue depth. Can be any value from 0x00 to 0xff.
bPSASensitive
Specifies if the logical unit is sensitive to soldering. Contains one of the following values:
Value | Description |
---|---|
0x00 | The logical unit is not sensitive to soldering. |
0x01 | The logical unit is sensitive to soldering. |
bMemoryType
Specifies the desired memory type. The wSupportedMemoryTypes parameter in the UFS_GEOMETRY_DESCRIPTOR structure indicates which memory types are supported by the device.
bDataReliability
Specifies if the device is protected against a power failure during a write operation to the logical unit.
bLogicalBlockSize
Specifies the logical block size of the descriptor. Set the value of this equal to the corresponding value in dOptimalLogicalBlockSize of UFS_GEOMETRY_DESCRIPTOR for the specific logical unit memory type.
qLogicalBlockCount[8]
Specifies the total number of addressable logical blocks in the logical unit.
dEraseBlockSize[4]
Specifies the erase block size.
bProvisioningType
Specifies the provisioning type.
qPhyMemResourceCount[8]
Specifies the total physical memory resources available in the logical unit.
wContextCapabilities[2]
Specifies the number of contexts to be supported in each logical unit.
bLargeUnitGranularity_M1
Specifies the Large Unit granularity, minus one.
wLUMaxActiveHPBRegions
wHPBPinnedRegionStartIdx
wNumHPBPinnedRegions
dLUNumWriteBoosterBufferAllocUnits
Remarks
bPSASensitive and dEraseBlockSize are updated automatically after device configuration.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10, version 1709 |
Minimum supported server | Windows Server 2016 |
Header | ufs.h |
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for