NVME_CDW11_FEATURES union (nvme.h)

Contains parameters for the Get Features and Set Features commands that retrieve or set the attributes of the specified feature.

This structure is used in the CDW11 parameter of the GETFEATURES and SETFEATURES fields in the Command structure.

Syntax

typedef union {
  NVME_CDW11_FEATURE_NUMBER_OF_QUEUES              NumberOfQueues;
  NVME_CDW11_FEATURE_INTERRUPT_COALESCING          InterruptCoalescing;
  NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG       InterruptVectorConfig;
  NVME_CDW11_FEATURE_LBA_RANGE_TYPE                LbaRangeType;
  NVME_CDW11_FEATURE_ARBITRATION                   Arbitration;
  NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE          VolatileWriteCache;
  NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG            AsyncEventConfig;
  NVME_CDW11_FEATURE_POWER_MANAGEMENT              PowerManagement;
  NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION   AutoPowerStateTransition;
  NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD         TemperatureThreshold;
  NVME_CDW11_FEATURE_ERROR_RECOVERY                ErrorRecovery;
  NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER            HostMemoryBuffer;
  NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL        WriteAtomicityNormal;
  NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE   NonOperationalPowerState;
  NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE        IoCommandSetProfile;
  NVME_CDW11_FEATURE_ERROR_INJECTION               ErrorInjection;
  NVME_CDW11_FEATURE_HOST_IDENTIFIER               HostIdentifier;
  NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE       ReservationPersistence;
  NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK ReservationNotificationMask;
  NVME_CDW11_FEATURE_GET_HOST_METADATA             GetHostMetadata;
  NVME_CDW11_FEATURE_SET_HOST_METADATA             SetHostMetadata;
  ULONG                                            AsUlong;
} NVME_CDW11_FEATURES, *PNVME_CDW11_FEATURES;

Members

NumberOfQueues

Specifies an NVME_CDW11_FEATURE_NUMBER_OF_QUEUES structure containing values that indicates the number of queues that the host requests for this controller.

When a Set Features or Get Features command is submitted for the Number of Queues Feature, the NVME_CDW11_FEATURE_NUMBER_OF_QUEUES structure is returned in the Dword 0 (DW0) field of the Completion Queue entry for that command.

InterruptCoalescing

Specifies an NVME_CDW11_FEATURE_INTERRUPT_COALESCING structure containing values that configure the interrupt coalescing settings.

When a Get Features command is submitted for the Interrupt Coalescing Feature, the values specified in the TIME and THR fields of the NVME_CDW11_FEATURE_INTERRUPT_COALESCING structure are returned in the DW0 field of the Completion Queue Entry for that command.

InterruptVectorConfig

Specifies an NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG structure containing values that configure settings specific to a particular interrupt vector.

When a Get Features command is submitted for the Interrupt Vector Configuration Feature, the values specified in the Interrupt Vector (IV) and Coalescing Disabled (CD) fields of the NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG structure are returned in the DW0 field of the Completion Queue Entry for that command.

Prior to issuing this feature, the host should configure the specified Interrupt Vector with a valid I/O Completion Queue. If the I/O Completion Queue or Interrupt Vector specified is invalid, the controller will return a status of NVME_STATUS_INVALID_FIELD_IN_COMMAND.

LbaRangeType

Specifies an NVME_CDW11_FEATURE_LBA_RANGE_TYPE structure containing a value that specifies the number of LBA ranges for the LBA Range Type Feature in the Set Features command.

This field is used for the Set Features command only and is ignored for the Get Features command.

The LBA Range Type feature specifies type and attributes of Logical Block Allocation (LBA) ranges that are part of the specified namespace. The feature uses the NVME_CDW11_FEATURE_LBA_RANGE_TYPE structure to specify the number of LBA ranges, and the NVME_LBA_RANGET_TYPE_ENTRY data structure to specify the type and attribute information.

When a Get Features command is submitted for the LBA Range Type feature, the value specified in the NUM field of the NVME_CDW11_FEATURE_LBA_RANGE_TYPE structure is returned in the DW0 field of the Completion Queue entry, and the LBA Range Type NVME_LBA_RANGET_TYPE_ENTRY data structure is returned in the data buffer for that command.

Arbitration

Specifies an NVME_CDW11_FEATURE_ARBITRATION structure containing values that control command arbitration.

When a Get Features command is submitted for the Arbitration feature, the structure specified in this field is returned in the DW0 field of the Completion Queue entry for that command.

VolatileWriteCache

Specifies an NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE structure containing values that control the volatile write cache, if present, on the controller.

When a Get Features command is submitted for the Volatile Write Cache Feature, the value specified in the WCE field of the NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE is returned in the DW0 field of the Completion Queue Entry for that command.

AsyncEventConfig

Specifies an NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG structure containing parameters for the Asynchronous Event Configuration Feature that controls the events that trigger an asynchronous event notification to the host.

When a Get Features command is submitted for the Asynchronous Event Configuration Feature, the values specified in The NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG structure are returned in the DW0 field of the Completion Queue Entry structure for that command.

PowerManagement

Specifies an NVME_CDW11_FEATURE_POWER_MANAGEMENT structure containing values that allow the host to configure the power state.

When a Get Features command is submitted for the Power Management feature, the NVME_CDW11_FEATURE_POWER_MANAGEMENT structure is returned in the DW0 field of the Completion Queue entry for that command.

AutoPowerStateTransition

Specifies an NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION structure containing parameters for the Autonomous Power State Transition Feature that configures the settings for autonomous power state transitions.

The Autonomous Power State Transition Feature specifies the attribute information in the NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION data structure and the Autonomous Power State Transition Entry data structure.

When a Get Features command is submitted for the Autonomous Power State Transition Feature, the value specified in The APSTE field of the NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION structure is returned in the DW0 field of the Completion Queue Entry, and the NVME_AUTO_POWER_STATE_TRANSITION_ENTRY data structure is returned in the data buffer for that command.

TemperatureThreshold

Specifies an NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD structure containing values that are used to set or retrieve temperature threshold values for the controller.

ErrorRecovery

HostMemoryBuffer

Specifies an NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER structure containing values that are used to control the Host Memory Buffer.

The Host Memory Buffer feature provides a mechanism for the host to allocate a portion of host memory for the controller to use exclusively. After a successful completion of a Set Features command that enables the host memory buffer, the host will not write to the associated host memory region, buffer size, or descriptor list until the host memory buffer has been disabled. After a successful completion of a Set Features command that disables the host memory buffer, the controller will not access any data in the host memory buffer until the host memory buffer has been enabled.

The Host Memory Descriptor List is a physically contiguous data structure in host memory that describes the address and length pairs of the Host Memory Buffer. The boundaries and contents of the list are defined in following fields and structures:

WriteAtomicityNormal

Specifies an NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL structure containing values that control the operation of the Atomic Write Unit Normal (AWUN) and Namespace Atomic Write Unit Normal (NAWUN) parameters that define the controller’s support for atomic operations.

When a Get Features command is submitted for the Write Atomicity Normal Feature, the values specified in The NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL structure are returned in the DW0 field of the Completion Queue Entry structure for that command.

NonOperationalPowerState

Specifies an NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE structure containing values for the Non-Operational Power State Feature that indicates whether permissive mode is enabled for a non-operational power state.

IoCommandSetProfile

ErrorInjection

HostIdentifier

ReservationPersistence

ReservationNotificationMask

GetHostMetadata

SetHostMetadata

AsUlong

Requirements

Requirement Value
Minimum supported client Windows 10
Header nvme.h

See also