NVME_CDW10_FORMAT_NVM union (nvme.h)

Contains parameters for the Format NVM command that is used to low level format the NVM media.

This command is used when the host wants to change the Logical Block Address (LBA) data size and/or metadata size. A low level format may destroy all data and metadata associated with all namespaces or only the specific namespace associated with the command (refer to the Format NVM Attributes in the Optional Admin Command Support (OACS) field of the Identify Controller data structure). After the Format NVM command successfully completes, the controller will not return any user data that was previously contained in an affected namespace.

The Format NVM command uses the Command Dword 10 CDW10 field in the FORMATNVM parameter of the Command structure. All other command specific fields are reserved.

Syntax

typedef union {
  struct {
    ULONG LBAF : 4;
    ULONG MS : 1;
    ULONG PI : 3;
    ULONG PIL : 1;
    ULONG SES : 3;
    ULONG ZF : 2;
    ULONG Reserved : 18;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_CDW10_FORMAT_NVM, *PNVME_CDW10_FORMAT_NVM;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.LBAF

An NVME_LBA_FORMAT value that specifies the LBA format to apply to the NVM media. Only supported LBA formats can be selected. This value corresponds to the LBAF field in the NVME_IDENTIFY_NAMESPACE_DATA structure for the Identify command.

DUMMYSTRUCTNAME.MS

Specifies the metadata settings.

When this field set to 1 if the metadata is transferred as part of an extended data LBA. This field is cleared to 0 if the metadata is transferred as part of a separate buffer. The metadata may include protection information, based on the Protection Information (PI) field. If the Metadata Size MS field of the LBA Format selected is 0h, then this field is not applicable.

DUMMYSTRUCTNAME.PI

An NVME_PROTECTION_INFORMATION_TYPES enumeration value that specifies whether end-to-end data protection is enabled and the type of protection information.

DUMMYSTRUCTNAME.PIL

Specifies the protection information location.

If this value is set to 1 and protection information is enabled, then protection information is transferred as the first eight bytes of metadata. If cleared to 0 and protection information is enabled, then protection information is transferred as the last eight bytes of metadata. This setting is reported in the Formatted LBA Size LBAF field of the Identify Namespace data structure.

DUMMYSTRUCTNAME.SES

An NVME_SECURE_ERASE_SETTINGS enumeration value that specifies whether a secure erase should be performed as part of the format and the type of the secure erase operation. The erase applies to all user data, regardless of location. For example, within an exposed LBA, within a cache, or within deallocated LBAs.

DUMMYSTRUCTNAME.ZF

DUMMYSTRUCTNAME.Reserved

AsUlong

Requirements

Requirement Value
Minimum supported client Windows 10
Header nvme.h

See also