NVME_CDW11_CREATE_IO_CQ union (nvme.h)

Contains parameters for the Create I/O Completion Queue command, that is used to create all I/O Completion Queues with the exception of the Admin Completion Queue.

The NVME_CDW11_CREATE_IO_CQ structure is used in the CDW11 field of the CREATEIOCQ parameter of the Command structure.

Syntax

typedef union {
  struct {
    ULONG PC : 1;
    ULONG IEN : 1;
    ULONG Reserved0 : 14;
    ULONG IV : 16;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_CDW11_CREATE_IO_CQ, *PNVME_CDW11_CREATE_IO_CQ;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.PC

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

When this value is set to 1, the Completion 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 cleared to 0, the Completion Queue is not physically contiguous and PRP1 is a PRP List pointer.

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.IEN

The Interrupts Enabled (IEN) field indicates whether interrupts are enabled for this Completion Queue.

When the value is set to 1, interrupts are enabled for this Completion Queue. When the value is cleared to 0, interrupts are disabled for this Completion Queue.

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.IV

The Interrupt Vector (IV) field indicates the interrupt vector to use for this Completion Queue.

This value corresponds to the Message-signaled interrupt (MSI-X) vector or, if you are using a single message MSI or pin-based interrupts, the value is set to 0h. In MSI-X, a maximum of 2K vectors are used.

This value should not be set to a value greater than the number of messages the controller supports. If it is, the controller will return a status of NVME_STATUS_INVALID_INTERRUPT_VECTOR.

AsUlong

Requirements

Requirement Value
Minimum supported client Windows 10
Header nvme.h

See also