UFS_DEVICE_HEALTH_DESCRIPTOR structure (ufs.h)
The UFS_DEVICE_HEALTH_DESCRIPTOR structure describes the health of a device.
Syntax
typedef struct {
UCHAR bLength;
UCHAR bDescriptorIDN;
UCHAR bPreEOLInfo;
UCHAR bDeviceLifeTimeEstA;
UCHAR bDeviceLifeTimeEstB;
UCHAR VendorPropInfo[32];
ULONG dRefreshTotalCount;
ULONG dRefreshProgress;
} UFS_DEVICE_HEALTH_DESCRIPTOR, *PUFS_DEVICE_HEALTH_DESCRIPTOR;
Members
bLength
Specifies the length, in bytes, of this descriptor.
bDescriptorIDN
Specifies the descriptor's identification value. UFS_DEVICE_HEALTH_DESCRIPTOR will have a value of UFS_DESC_HEALTH_IDN.
bPreEOLInfo
Contains pre-end-of-life information. This member supplies information about a device's life time as reflected by the average number of reserved blocks. Contains one of the following values:
Value | Description |
---|---|
0x00 | Member is not defined. |
0x01 | Normal. Consumed less than 80% of reserved blocks. |
0x02 | Consumed 80% of reserved blocks. |
0x03 | Critical. Consumed 90% of reserved blocks. |
All other values | Reserved for future use. |
bDeviceLifeTimeEstA
bDeviceLifeTimeEstA provides an estimation of how much of a device's estimated life time has been used based on the amount of performed program and erase cycles. This calculation is vendor-specific and is referred as method A. Contains one of the following values:
Value | Description |
---|---|
0x00 | Information about device's life time not found. |
0x01 | 0% to 10% of the device's estimated life time has been used. |
0x02 | 10% to 20% of the device's estimated life time has been used. |
0x03 | 20% to 30% of the device's estimated life time has been used. |
0x04 | 30% to 40% of the device's estimated life time has been used. |
0x05 | 40% to 50% of the device's estimated life time has been used. |
0x06 | 50% to 60% of the device's estimated life time has been used. |
0x07 | 60% to 70% of the device's estimated life time has been used. |
0x08 | 70% to 80% of the device's estimated life time has been used. |
0x09 | 80% to 90% of the device's estimated life time has been used. |
0x0A | 90% to 100% of the device's estimated life time has been used. |
0x0B | Device has exceeded it's estimated life time. |
All other values | Reserved for future use. |
bDeviceLifeTimeEstB
bDeviceLifeTimeEstB provides an estimation of how much of a device's estimated life time has been used based on the amount of performed program and erase cycles. This calculation is vendor-specific and is referred as method B. Contains the same possible values as bDeviceLifeTimeEstA.
VendorPropInfo[32]
Reserved for vendor proprietary health report.
dRefreshTotalCount
dRefreshTotalCount specifies how many times the device completed refresh for the entire device. dRefreshTotalCount is incremented by one when dRefreshProgress reaches 100000 (100.000%).
dRefreshProgress
dRefreshProgress specifies the refresh progress in percentage. dRefreshProgress indicates 0.000% to 100.000% in decimal. dRefreshProgress is 100000 (dec) when it completes 100 percent. dRefreshProgress is 1000 (decimal) when it completes one percent. When this value reaches 100000 (100.000%):
- Device stops refreshing.
- dRefreshProgress is reset to zero.
- dRefreshTotalCount is incremented by one.
Remarks
The UFS host controller contains a series of configurable descriptor tables, which allow the driver to query and configure the host controller's capabilities. Query the requested descriptor from the descriptor table on the device.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10, version 1709 |
Minimum supported server | Windows Server 2016 |
Header | ufs.h |