NVME_CDW11_CREATE_IO_SQ union (nvme.h)

Contains parameters for the Create IO Submission Queue command, that is used to create IO Submission Queues.

The NVME_CDW11_CREATE_IO_SQ structure is used in the CDW11 field of the CREATEIOSQ parameter of the Command structure.

Syntax

typedef union {
  struct {
    ULONG PC : 1;
    ULONG QPRIO : 2;
    ULONG Reserved0 : 13;
    ULONG CQID : 16;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_CDW11_CREATE_IO_SQ, *PNVME_CDW11_CREATE_IO_SQ;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.PC

The Physically Contiguous (PC) field indicates whether the Submission Queue is physically contiguous in memory.

When this value is set to 1, the Submission Queue is physically contiguous and PRP Entry 1 (PRP1 in the Command data structure) is the address of a contiguous physical buffer. If the value is set to 0, the Submission Queue is not physically contiguous and PRP1 is a PRP List pointer.

If this value is cleared to 0 and the Contiguous Queues Required (CQR) field is set to 1 in Controller Capabilities, the controller should return a status of NVME_STATUS_INVALID_FIELD_IN_COMMAND.

If the queue is located in the Controller Memory Buffer and PC is cleared to 0, the controller will fail the command with a status of NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER.

DUMMYSTRUCTNAME.QPRIO

The Queue Priority (QPRIO) field indicates the priority class to use for commands within this Submission Queue by specifying an NVME_NVM_QUEUE_PRIORITIES enumeration value.

This field is only used when the weighted round robin with urgent priority class is the arbitration mechanism selected, the field is ignored if weighted round robin with urgent priority class is not used.

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.CQID

The Queue Identifier (QID) field indicates the identifier of the Completion Queue to utilize for any command completions entries associated with this Submission Queue.

The value of 0h (Admin Completion Queue) should not be specified.

If the value specified is 0h or does not correspond to a valid I/O Completion Queue, the controller should return an error of NVME_STATUS_INVALID_QUEUE_IDENTIFIER.

AsUlong

Requirements

Requirement Value
Minimum supported client Windows 10
Header nvme.h

See also