NVME_SUBMISSION_QUEUE_TAIL_DOORBELL union (nvme.h)

Defines the doorbell register that updates the Tail entry pointer for Submission Queue y.

The value of y is equivalent to the Queue Identifier, the 16-bit ID value that is assigned to the queue when it is created, this value indicates to the controller that new commands have been submitted for processing.

The Offset of the Submission Queue y Tail Doorbell (CQyHDBL) is: (1000h + ((2y) * (4 << CAP.DSTRD)))

Where CAP.DSTRD is the value of the DSTRD field in NVME_CONTROLLER_CAPABILITIES.

Syntax

typedef union {
  struct {
    ULONG SQT : 16;
    ULONG Reserved0 : 16;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_SUBMISSION_QUEUE_TAIL_DOORBELL, *PNVME_SUBMISSION_QUEUE_TAIL_DOORBELL;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.SQT

A Read/Write field that indicates the new value of the Submission Queue Tail entry pointer.

This value will overwrite any previously provided Submission Queue Tail (SQT) value. The difference between the last SQT write and the current SQT write indicates the number of commands added to the Submission Queue.

Note

Submission Queue rollover must be accounted for.

DUMMYSTRUCTNAME.Reserved0

A Read Only reserved field.

AsUlong

Remarks

The host should not read the doorbell registers. If a doorbell register is read, the value returned is vendor specific. Writing to a non-existent Submission Queue Tail Doorbell has undefined results.

Requirements

Requirement Value
Minimum supported client Windows 10
Header nvme.h