NVME_COMMAND_EFFECTS_DATA union (nvme.h)

Contains information that describes the overall possible effect of an Admin or I/O command, including any optional features of the command.

This structure is used in the ACS and IOCS fields of the NVME_COMMAND_EFFECTS_LOG.

Syntax

typedef union {
  struct {
    ULONG CSUPP : 1;
    ULONG LBCC : 1;
    ULONG NCC : 1;
    ULONG NIC : 1;
    ULONG CCC : 1;
    ULONG Reserved0 : 11;
    ULONG CSE : 3;
    ULONG Reserved1 : 13;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_COMMAND_EFFECTS_DATA, *PNVME_COMMAND_EFFECTS_DATA;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.CSUPP

Indicates whether the command is supported.

When this value is set to 1, the command is supported by the controller. When this value is cleared to 0, the command is not supported by the controller and all other fields in this structure will be cleared to 0h.

DUMMYSTRUCTNAME.LBCC

Indicates whether the command can modify logical block content in one or more namespaces.

When this value is set to 1, the command can modify logical block content in one or more namespaces. When this value is cleared to 0, the command does not modify logical block content in any namespace. Logical block content changes include a write to a logical block.

DUMMYSTRUCTNAME.NCC

Indicates whether the command can change the capabilities of a single namespace.

When this value is set to 1, the command can change the capabilities of a single namespace. When this value is cleared to 0, the command does not modify any namespace capabilities for the specified namespace. Namespace capability changes include a logical format change.

DUMMYSTRUCTNAME.NIC

Indicates whether the command can change the number of namespaces or capabilities for multiple namespaces.

When this value is set to 1, the command can change the number of namespaces or capabilities for multiple namespaces. When this value is cleared to 0, the command does not modify the number of namespaces or capabilities for multiple namespaces. Namespace inventory changes (NIC) include adding or removing namespaces.

DUMMYSTRUCTNAME.CCC

Indicates whether the command can change controller capabilities.

When this value is set to 1, the command can change controller capabilities. When this value is cleared to 0, the command does not modify controller capabilities. Controller capability changes (CCC) include a firmware update that changes the capabilities reported in the CAP register.

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.CSE

An NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMITS value that defines the command submission and execution recommendations for the associated command.

DUMMYSTRUCTNAME.Reserved1

AsUlong

Remarks

Host software may take command effects into account when determining how to submit commands and actions to take after the command is complete. If a command changes a particular capability. the host software should re-enumerate and/or re-initialize the associated capability after the command is complete.

For example, if a namespace capability change may occur, then the host software should pause the use of the associated namespace, submit the command that may cause a namespace capability change and wait for its completion, and then re-issue the Identify command.

Requirements

Requirement Value
Minimum supported client Windows 10
Header nvme.h

See also