NVME_CONTROLLER_CAPABILITIES union (nvme.h)

ソフトウェアをホストするコントローラーの基本的な機能を指定する読み取り専用の値が含まれます。

この構造体は、NVME_CONTROLLER_REGISTERS構造体の [コントローラー機能 (CAP)] フィールドで使用されます。

構文

typedef union {
  struct {
    ULONGLONG MQES : 16;
    ULONGLONG CQR : 1;
    ULONGLONG AMS_WeightedRoundRobinWithUrgent : 1;
    ULONGLONG AMS_VendorSpecific : 1;
    ULONGLONG Reserved0 : 5;
    ULONGLONG TO : 8;
    ULONGLONG DSTRD : 4;
    ULONGLONG NSSRS : 1;
    ULONGLONG CSS_NVM : 1;
    ULONGLONG CSS_Reserved0 : 1;
    ULONGLONG CSS_Reserved1 : 1;
    ULONGLONG CSS_Reserved2 : 1;
    ULONGLONG CSS_Reserved3 : 1;
    ULONGLONG CSS_Reserved4 : 1;
    ULONGLONG CSS_MultipleIo : 1;
    ULONGLONG CSS_AdminOnly : 1;
    ULONGLONG Reserved2 : 3;
    ULONGLONG MPSMIN : 4;
    ULONGLONG MPSMAX : 4;
    ULONGLONG Reserved3 : 8;
  } DUMMYSTRUCTNAME;
  ULONGLONG AsUlonglong;
} NVME_CONTROLLER_CAPABILITIES, *PNVME_CONTROLLER_CAPABILITIES;

メンバー

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.MQES

コントローラーがサポートする個々のキューの最大サイズを示します。

この値は、ホスト ソフトウェアによって作成される I/O 送信キューと I/O 完了キューのそれぞれに適用されます。

これは 0 に基づく値です。 最小値は で、 1h2 つのキュー エントリを示します。

DUMMYSTRUCTNAME.CQR

コントローラーで I/O 送信キューと I/O 完了キューが物理的に連続している必要があるかどうかを示します。

このフィールドが に 1設定されている場合、コントローラーは I/O 送信キューと I/O 完了キューが物理的に連続している必要があります。 このフィールドが に 0クリアされると、コントローラーは、物理的に連続していない I/O 送信キューと I/O 完了キューをサポートします。

このフィールドが に1設定されている場合、I/O 送信キューの作成コマンドと I/O入力候補キューの作成コマンドの物理連続ビット (PC フィールド) が に1設定されます。

DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent

緊急優先度クラスによる重み付けラウンド ロビンの調停メカニズムがコントローラーによってサポートされているかどうかを示します。

このフィールドが に 1設定されている場合、緊急優先度クラスによる重み付けラウンド ロビンのアービトレーション メカニズムがサポートされます。

この AMS_WeightedRoundRobinWithUrgent フィールドと AMS_VendorSpecific フィールドは、コントローラーでサポートされているオプションの調停メカニズムを示します。 すべてのコントローラーがこの調停メカニズムをサポートする必要があるため、ラウンド ロビンアービト メカニズムは一覧表示されません。

DUMMYSTRUCTNAME.AMS_VendorSpecific

ベンダー固有の調停メカニズムがコントローラーによってサポートされているかどうかを示します。

このフィールドが に 1設定されている場合、ベンダー固有のアービトレーション メカニズムがサポートされます。

DUMMYSTRUCTNAME.Reserved0

予約フィールド (ビット 19 から 23)。

DUMMYSTRUCTNAME.TO

ホスト ソフトウェアがコントローラーの状態の準備完了 (RDY) の値が切り替わるのを待機する最悪の場合を示します。

  • 0NVME_CONTROLLER_CONFIGURATION 1EN 値が から 0 に遷移した後の に1。 または
  • 1NVME_CONTROLLER_CONFIGURATION 0EN 値が から 1 に遷移した後の を に設定します。0

この最悪のケースの時間は、突然のシャットダウンや新しいファームウェア イメージのアクティブ化などのイベントの後に発生する可能性があります。 一般的な時間は、はるかに短い時間になると予想されます。

このフィールドの値は 500 ミリ秒単位です。

DUMMYSTRUCTNAME.DSTRD

ドアベル レジスタ間の ストライド を示します。

送信キュー完了キュー の Doorbell レジスタのサイズは 32 ビットです。 ストライドはバイト単位で指定されます (2 ^ (2 + DSTRD))

0h 値は、4 バイトのストライドを示します。ここで、ドアベル レジスタは各レジスタの間に予約済み領域なしでパックされます。

DUMMYSTRUCTNAME.NSSRS

コントローラーが、NVME_NVM_SUBSYSTEM_RESET構造で定義されている NVM サブシステム リセット機能をサポートしているかどうかを示します。

このフィールドが に 1設定されている場合、コントローラーは NVM サブシステムリセット機能をサポートします。 このフィールドは に 0クリアされます。コントローラーは NVM サブシステム リセット機能をサポートしていません。

DUMMYSTRUCTNAME.CSS_NVM

このフィールドは、NVM コマンド セットがコントローラーでサポートされているかどうかを示します。 少なくとも 1 つのコマンド セットがサポートされている必要があります。

このフィールドを に 1設定すると、NVM コマンド セットがサポートされます。

CSS_Reserved6 フィールドを介したCSS_Reserved0は、他の I/O コマンド セット用に予約されます。これらのフィールドの値が に1設定されている場合は、対応する I/O コマンド セットがサポートされます。

DUMMYSTRUCTNAME.CSS_Reserved0

DUMMYSTRUCTNAME.CSS_Reserved1

DUMMYSTRUCTNAME.CSS_Reserved2

DUMMYSTRUCTNAME.CSS_Reserved3

DUMMYSTRUCTNAME.CSS_Reserved4

DUMMYSTRUCTNAME.CSS_MultipleIo

DUMMYSTRUCTNAME.CSS_AdminOnly

DUMMYSTRUCTNAME.Reserved2

DUMMYSTRUCTNAME.MPSMIN

コントローラーがサポートする最小ホスト メモリ ページ サイズを示します。

最小メモリ ページ サイズは です (2 ^ (12 + MPSMIN))

ホストは、この値より小さいNVME_CONTROLLER_CONFIGURATIONMPS フィールドにメモリ ページ サイズを構成しません。

DUMMYSTRUCTNAME.MPSMAX

コントローラーがサポートする最大ホスト メモリ ページ サイズを示します。

最大メモリ ページ サイズは です (2 ^ (12 + MPSMAX))

ホストは、この値より大きいNVME_CONTROLLER_CONFIGURATIONMPS フィールドにメモリ ページ サイズを構成しません。

DUMMYSTRUCTNAME.Reserved3

AsUlonglong

要件

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

こちらもご覧ください