次の方法で共有


NVME_COMPLETION_QUEUE_HEAD_DOORBELL union (nvme.h)

完了キュー y のヘッド エントリ ポインターを更新するドアベル レジスタ 定義します。

y の値は、キュー ID (キューの作成時にキューに割り当てられる 16 ビット ID 値) と同じです。この値は、ホスト ソフトウェアによって処理された完了キュー エントリを示します。

完了キュー y ヘッド ドアベル (CQyHDBL) のオフセットは次のとおりです。 (1000h + ((2y + 1) * (4 << CAP.DSTRD)))

CAP.DSTRDNVME_CONTROLLER_CAPABILITIESDSTRD フィールドの値です。

構文

typedef union {
  struct {
    ULONG CQH : 16;
    ULONG Reserved0 : 16;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_COMPLETION_QUEUE_HEAD_DOORBELL, *PNVME_COMPLETION_QUEUE_HEAD_DOORBELL;

メンバー

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.CQH

完了キュー ヘッド エントリ ポインターの新しい値を示す読み取り/書き込みフィールド。

この値は、以前に指定した完了キュー ヘッド (CQH) 値を上書きします。 最後の CQH 書き込みと現在の CQH エントリ ポインター書き込みの違いは、完了キュー内のコントローラーで再利用できるようになったエントリの数を示します。

注意

完了キューのロールオーバーが考慮されている必要があります。

DUMMYSTRUCTNAME.Reserved0

読み取り専用の予約済みフィールド。

AsUlong

注釈

ホストはドアベル レジスタを読み取るべきではありません。 ドアベル レジスタが読み取られた場合、返される値はベンダー固有です。 存在しない完了キュー ヘッド ドアベルに書き込むには、未定義の結果があります。

ホスト ソフトウェアは、送信キューに使用可能なエントリがあるかどうかに関係なく、完了キュー内の完了キュー エントリを処理し続ける必要があります。

要件

要件
サポートされている最小のクライアント Windows 10
Header nvme.h