NVME_LBA_FORMAT union (nvme.h)
Contains parameters that specify the LBA format to apply to the NVM media as part of the Format NVM command.
This structure is used in the LBAF field of the NVME_IDENTIFY_NAMESPACE_DATA structure.
Syntax
typedef union {
struct {
USHORT MS;
UCHAR LBADS;
UCHAR RP : 2;
UCHAR Reserved0 : 6;
} DUMMYSTRUCTNAME;
ULONG AsUlong;
} NVME_LBA_FORMAT, *PNVME_LBA_FORMAT;
Members
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.MS
Indicates the number of metadata bytes provided per LBA based on the value of the LBA Data Size (LBADS) field.
If metadata is not supported, this field will be cleared to 00h
.
If metadata is supported, then the namespace may support the metadata being transferred as part of an extended data LBA or as part of a separate contiguous buffer. If end-to-end data protection is enabled, then the first eight bytes or last eight bytes of the metadata is the protection information.
DUMMYSTRUCTNAME.LBADS
Indicates the supported LBA data size. The value is reported in terms of a power of two (2^n). A value smaller than 9 (for example, 512 bytes) is not supported. If the reported value is 0h
, then the LBA format is not supported or is used.
DUMMYSTRUCTNAME.RP
Indicates the relative performance of the LBA format relative to other LBA formats supported by the controller. Depending on the size of the LBA and associated metadata, there may be performance implications. The performance analysis is based on better performance on a queue depth of 32 with a 4KB read workload.
The meanings of the values are listed in the following table.
Value | Definition |
---|---|
00b | Best performance |
01b | Better performance |
10b | Good performance |
11b | Degraded performance |
DUMMYSTRUCTNAME.Reserved0
AsUlong
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10 |
Header | nvme.h |