NVME_IDENTIFY_CONTROLLER_DATA 構造体 (nvme.h)

コントローラーの機能、機能、コマンド セット属性、および電源状態記述子を示す値が含まれています。

構文

typedef struct {
  USHORT                VID;
  USHORT                SSVID;
  UCHAR                 SN[20];
  UCHAR                 MN[40];
  UCHAR                 FR[8];
  UCHAR                 RAB;
  UCHAR                 IEEE[3];
  struct {
    UCHAR MultiPCIePorts : 1;
    UCHAR MultiControllers : 1;
    UCHAR SRIOV : 1;
    UCHAR ANAR : 1;
    UCHAR Reserved : 4;
  } CMIC;
  UCHAR                 MDTS;
  USHORT                CNTLID;
  ULONG                 VER;
  ULONG                 RTD3R;
  ULONG                 RTD3E;
  struct {
    ULONG Reserved0 : 8;
    ULONG NamespaceAttributeChanged : 1;
    ULONG FirmwareActivation : 1;
    ULONG Reserved1 : 1;
    ULONG AsymmetricAccessChanged : 1;
    ULONG PredictableLatencyAggregateLogChanged : 1;
    ULONG LbaStatusChanged : 1;
    ULONG EnduranceGroupAggregateLogChanged : 1;
    ULONG Reserved2 : 12;
    ULONG ZoneInformation : 1;
    ULONG Reserved3 : 4;
  } OAES;
  struct {
    ULONG HostIdentifier128Bit : 1;
    ULONG NOPSPMode : 1;
    ULONG NVMSets : 1;
    ULONG ReadRecoveryLevels : 1;
    ULONG EnduranceGroups : 1;
    ULONG PredictableLatencyMode : 1;
    ULONG TBKAS : 1;
    ULONG NamespaceGranularity : 1;
    ULONG SQAssociations : 1;
    ULONG UUIDList : 1;
    ULONG Reserved0 : 22;
  } CTRATT;
  struct {
    USHORT ReadRecoveryLevel0 : 1;
    USHORT ReadRecoveryLevel1 : 1;
    USHORT ReadRecoveryLevel2 : 1;
    USHORT ReadRecoveryLevel3 : 1;
    USHORT ReadRecoveryLevel4 : 1;
    USHORT ReadRecoveryLevel5 : 1;
    USHORT ReadRecoveryLevel6 : 1;
    USHORT ReadRecoveryLevel7 : 1;
    USHORT ReadRecoveryLevel8 : 1;
    USHORT ReadRecoveryLevel9 : 1;
    USHORT ReadRecoveryLevel10 : 1;
    USHORT ReadRecoveryLevel11 : 1;
    USHORT ReadRecoveryLevel12 : 1;
    USHORT ReadRecoveryLevel13 : 1;
    USHORT ReadRecoveryLevel14 : 1;
    USHORT ReadRecoveryLevel15 : 1;
  } RRLS;
  UCHAR                 Reserved0[9];
  UCHAR                 CNTRLTYPE;
  UCHAR                 FGUID[16];
  USHORT                CRDT1;
  USHORT                CRDT2;
  USHORT                CRDT3;
  UCHAR                 Reserved0_1[106];
  UCHAR                 ReservedForManagement[16];
  struct {
    USHORT SecurityCommands : 1;
    USHORT FormatNVM : 1;
    USHORT FirmwareCommands : 1;
    USHORT NamespaceCommands : 1;
    USHORT DeviceSelfTest : 1;
    USHORT Directives : 1;
    USHORT NVMeMICommands : 1;
    USHORT VirtualizationMgmt : 1;
    USHORT DoorBellBufferConfig : 1;
    USHORT GetLBAStatus : 1;
    USHORT Reserved : 6;
  } OACS;
  UCHAR                 ACL;
  UCHAR                 AERL;
  struct {
    UCHAR Slot1ReadOnly : 1;
    UCHAR SlotCount : 3;
    UCHAR ActivationWithoutReset : 1;
    UCHAR Reserved : 3;
  } FRMW;
  struct {
    UCHAR SmartPagePerNamespace : 1;
    UCHAR CommandEffectsLog : 1;
    UCHAR LogPageExtendedData : 1;
    UCHAR TelemetrySupport : 1;
    UCHAR PersistentEventLog : 1;
    UCHAR Reserved0 : 1;
    UCHAR TelemetryDataArea4 : 1;
    UCHAR Reserved1 : 1;
  } LPA;
  UCHAR                 ELPE;
  UCHAR                 NPSS;
  struct {
    UCHAR CommandFormatInSpec : 1;
    UCHAR Reserved : 7;
  } AVSCC;
  struct {
    UCHAR Supported : 1;
    UCHAR Reserved : 7;
  } APSTA;
  USHORT                WCTEMP;
  USHORT                CCTEMP;
  USHORT                MTFA;
  ULONG                 HMPRE;
  ULONG                 HMMIN;
  UCHAR                 TNVMCAP[16];
  UCHAR                 UNVMCAP[16];
  struct {
    ULONG RPMBUnitCount : 3;
    ULONG AuthenticationMethod : 3;
    ULONG Reserved0 : 10;
    ULONG TotalSize : 8;
    ULONG AccessSize : 8;
  } RPMBS;
  USHORT                EDSTT;
  UCHAR                 DSTO;
  UCHAR                 FWUG;
  USHORT                KAS;
  struct {
    USHORT Supported : 1;
    USHORT Reserved : 15;
  } HCTMA;
  USHORT                MNTMT;
  USHORT                MXTMT;
  struct {
    ULONG CryptoErase : 1;
    ULONG BlockErase : 1;
    ULONG Overwrite : 1;
    ULONG Reserved : 26;
    ULONG NDI : 1;
    ULONG NODMMAS : 2;
  } SANICAP;
  ULONG                 HMMINDS;
  USHORT                HMMAXD;
  USHORT                NSETIDMAX;
  USHORT                ENDGIDMAX;
  UCHAR                 ANATT;
  struct {
    UCHAR OptimizedState : 1;
    UCHAR NonOptimizedState : 1;
    UCHAR InaccessibleState : 1;
    UCHAR PersistentLossState : 1;
    UCHAR ChangeState : 1;
    UCHAR Reserved : 1;
    UCHAR StaticANAGRPID : 1;
    UCHAR SupportNonZeroANAGRPID : 1;
  } ANACAP;
  ULONG                 ANAGRPMAX;
  ULONG                 NANAGRPID;
  ULONG                 PELS;
  UCHAR                 Reserved1[156];
  struct {
    UCHAR RequiredEntrySize : 4;
    UCHAR MaxEntrySize : 4;
  } SQES;
  struct {
    UCHAR RequiredEntrySize : 4;
    UCHAR MaxEntrySize : 4;
  } CQES;
  USHORT                MAXCMD;
  ULONG                 NN;
  struct {
    USHORT Compare : 1;
    USHORT WriteUncorrectable : 1;
    USHORT DatasetManagement : 1;
    USHORT WriteZeroes : 1;
    USHORT FeatureField : 1;
    USHORT Reservations : 1;
    USHORT Timestamp : 1;
    USHORT Verify : 1;
    USHORT Reserved : 8;
  } ONCS;
  struct {
    USHORT CompareAndWrite : 1;
    USHORT Reserved : 15;
  } FUSES;
  struct {
    UCHAR FormatApplyToAll : 1;
    UCHAR SecureEraseApplyToAll : 1;
    UCHAR CryptographicEraseSupported : 1;
    UCHAR FormatSupportNSIDAllF : 1;
    UCHAR Reserved : 4;
  } FNA;
  struct {
    UCHAR Present : 1;
    UCHAR FlushBehavior : 2;
    UCHAR Reserved : 5;
  } VWC;
  USHORT                AWUN;
  USHORT                AWUPF;
  struct {
    UCHAR CommandFormatInSpec : 1;
    UCHAR Reserved : 7;
  } NVSCC;
  struct {
    UCHAR WriteProtect : 1;
    UCHAR UntilPowerCycle : 1;
    UCHAR Permanent : 1;
    UCHAR Reserved : 5;
  } NWPC;
  USHORT                ACWU;
  UCHAR                 Reserved4[2];
  struct {
    ULONG SGLSupported : 2;
    ULONG KeyedSGLData : 1;
    ULONG Reserved0 : 13;
    ULONG BitBucketDescrSupported : 1;
    ULONG ByteAlignedContiguousPhysicalBuffer : 1;
    ULONG SGLLengthLargerThanDataLength : 1;
    ULONG MPTRSGLDescriptor : 1;
    ULONG AddressFieldSGLDataBlock : 1;
    ULONG TransportSGLData : 1;
    ULONG Reserved1 : 10;
  } SGLS;
  ULONG                 MNAN;
  UCHAR                 Reserved6[224];
  UCHAR                 SUBNQN[256];
  UCHAR                 Reserved7[768];
  UCHAR                 Reserved8[256];
  NVME_POWER_STATE_DESC PDS[32];
  UCHAR                 VS[1024];
} NVME_IDENTIFY_CONTROLLER_DATA, *PNVME_IDENTIFY_CONTROLLER_DATA;

メンバー

VID

周辺機器コンポーネント相互接続 - 特別利益グループ (PCI-SIG) によって割り当てられている会社のベンダー識別子が含まれています。

SSVID

サブシステムの PCI-SIG によって割り当てられる会社ベンダー識別子が含まれます。

SN[20]

ベンダーによって ASCII 文字列として割り当てられる NVM サブシステムのシリアル番号を格納します。

MN[40]

ベンダーによって ASCII 文字列として割り当てられる NVM サブシステムのモデル番号を格納します。

FR[8]

NVM サブシステムの現在アクティブなファームウェア リビジョンが含まれています。

これは、ログ ページの取得コマンドを使用して取得できる NVME_FIRMWARE_SLOT_INFO_LOG 内のファームウェア リビジョン情報と同じです。

RAB

推奨されるアービトレーション バースト サイズが含まれています。

IEEE[3]

コントローラー ベンダーの組織の一意識別子 (OUI) が含まれています。

OUI は、 で http://standards.ieee.org/develop/regauth/oui/public.html登録できる有効な IEEE/RAC 割り当て識別子です。

CMIC

コントローラーと NVM サブシステムのマルチパス I/O および名前空間共有機能を指定するコントローラーのマルチパス I/O および名前空間共有機能 (CMIC) 構造体。

CMIC.MultiPCIePorts

CMIC 構造体のビット 0。

この値が に 1設定されている場合、NVM サブシステムには 2 つ以上の物理 PCI Express ポートが含まれている可能性があります。 値が に 0クリアされると、NVM サブシステムには 1 つの PCI Express ポートが含まれます。

CMIC.MultiControllers

CMIC 構造体のビット 1。

この値が に 1設定されている場合、NVM サブシステムには 2 つ以上のコントローラーが含まれている可能性があります。 値が に 0クリアされると、NVM サブシステムには 1 つのコントローラーが含まれます。

CMIC.SRIOV

CMIC 構造体のビット 2。

この値が に 1設定されている場合、コントローラーは単一ルート I/O 仮想化 (SR-IOV) 仮想関数に関連付けられます。 値が に 0クリアされると、コントローラーは PCI 関数に関連付けられます。

CMIC.ANAR

CMIC.Reserved

CMIC 構造体のビット 3:7 が予約されています。

MDTS

ホストとコントローラーの間の最大データ転送サイズを示します。

ホストは、この転送サイズを超えるコマンドを送信しないでください。 転送サイズを超えるコマンドが送信された場合、コマンドは NVME_STATUS_INVALID_FIELD_IN_COMMANDの状態で中止されます。

このフィールドの値は、コントローラー機能構造の MPSMIN フィールドで指定された最小メモリ ページ サイズの単位であり、2 の累乗 (2^n) として報告されます。 の値 0h は、転送サイズに制限がないことを示します。 制限には、論理ブロック データとインターリーブされている場合のメタデータが含まれます。

SGL ビット バケット記述子がサポートされている場合、コマンドが宛先データ バッファーの最大データ転送サイズを超えているかどうかを判断する際に、その長さが含まれます。 ソース データ バッファー内の長さは、最大データ転送サイズの計算には含まれません。

CNTLID

コントローラーに関連付けられている NVM サブシステムの一意のコントローラー識別子が含まれます。

VER

NVME_CONTROLLER_REGISTERS構造体の VS フィールドで定義されているバージョン レジスタで報告される値 格納します。

NVMe 仕様バージョン 1.2 以降に準拠している実装では、このフィールドに 0 以外の値が報告されます。

RTD3R

ランタイム D3 (RTD3) から再開するときの一般的な待機時間をマイクロ秒単位で示します。

NVMe 仕様バージョン 1.2 以降に準拠している実装では、このフィールドに 0 以外の値が報告されます。

RTD3E

ランタイム D3 (RTD3) に入る一般的な待機時間をマイクロ秒単位で示します。

NVMe 仕様バージョン 1.2 以降に準拠している実装では、このフィールドに 0 以外の値が報告されます。

OAES

省略可能な非同期イベントがコントローラーでサポートされているかどうかを示すフィールドを含む、サポートされる省略可能な非同期イベント (OAES) 構造体。

コントローラーは、ホスト ソフトウェアによって有効になる前に、省略可能な非同期イベントを送信しないでください。

OAES.Reserved0

OAES 構造体のビット 10:31 が予約されています。

OAES.NamespaceAttributeChanged

OAES 構造体のビット 8。

この値が に 1設定されている場合、コントローラーは Namespace Attribute Changed イベントの送信をサポートします。 この値を に 0クリアすると、コントローラーは Namespace Attribute Changed イベントをサポートしません。

OAES.FirmwareActivation

OAES 構造体のビット 9。

この値が に 1設定されている場合、コントローラーはファームウェアアクティブ化イベントの送信をサポートします。 この値を に 0クリアすると、コントローラーはファームウェアのアクティブ化イベントをサポートしません。

OAES.Reserved1

OAES 構造体のビット 0:7 が予約されています。

OAES.AsymmetricAccessChanged

OAES.PredictableLatencyAggregateLogChanged

OAES.LbaStatusChanged

OAES.EnduranceGroupAggregateLogChanged

OAES.Reserved2

OAES.ZoneInformation

OAES.Reserved3

CTRATT

コントローラー属性情報を含むコントローラー属性 (CTRATT) 構造体。

CTRATT.HostIdentifier128Bit

128 ビットのホスト識別子を含む CTRATT 構造体のビット 32。

CTRATT.NOPSPMode

非運用電源状態 (NOPS) に関する情報を含む CTRATT 構造体のビット 31。

CTRATT.NVMSets

NVM コマンド セットに関する情報を含む CTRATT 構造体のビット 30。

CTRATT.ReadRecoveryLevels

読み取り回復レベルに関する情報を含む CTRATT 構造体のビット 29。

CTRATT.EnduranceGroups

持久力グループ レベルに関する情報を含む CTRATT 構造体のビット 28。

CTRATT.PredictableLatencyMode

CTRATT.TBKAS

CTRATT.NamespaceGranularity

CTRATT.SQAssociations

CTRATT.UUIDList

CTRATT.Reserved0

CTRATT 構造体のビット 0:27 が予約されています。

RRLS

RRLS.ReadRecoveryLevel0

RRLS.ReadRecoveryLevel1

RRLS.ReadRecoveryLevel2

RRLS.ReadRecoveryLevel3

RRLS.ReadRecoveryLevel4

RRLS.ReadRecoveryLevel5

RRLS.ReadRecoveryLevel6

RRLS.ReadRecoveryLevel7

RRLS.ReadRecoveryLevel8

RRLS.ReadRecoveryLevel9

RRLS.ReadRecoveryLevel10

RRLS.ReadRecoveryLevel11

RRLS.ReadRecoveryLevel12

RRLS.ReadRecoveryLevel13

RRLS.ReadRecoveryLevel14

RRLS.ReadRecoveryLevel15

Reserved0[9]

140 バイトの予約済みフィールド。

CNTRLTYPE

FGUID[16]

CRDT1

CRDT2

CRDT3

Reserved0_1[106]

ReservedForManagement[16]

NVMe 管理用に予約されています。

OACS

コントローラーでサポートされるオプションの管理 コマンドを示すフィールドを含む省略可能な管理 コマンド サポート (OACS) 構造体。

OACS.SecurityCommands

OACS 構造体のビット 0 は、コントローラーがセキュリティ送受信コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーはセキュリティ送信コマンドとセキュリティ受信コマンドをサポートします。 この値を に 0クリアすると、コントローラーはセキュリティ送受信コマンドとセキュリティ受信コマンドをサポートしません。

OACS.FormatNVM

OACS 構造体のビット 1 は、コントローラーが Format NVM コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは FORMAT NVM コマンドをサポートします。 この値を に 0クリアすると、コントローラーは FORMAT NVM コマンドをサポートしていません。

OACS.FirmwareCommands

OACS 構造体のビット 2 は、コントローラーがファームウェア コミットコマンドとファームウェア イメージ ダウンロード コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーはファームウェアコミットコマンドとファームウェアイメージダウンロードコマンドをサポートします。 この値を に 0クリアすると、コントローラーはファームウェアコミットコマンドとファームウェアイメージダウンロードコマンドをサポートしていません。

OACS.NamespaceCommands

OACS 構造体のビット 3 は、コントローラーが名前空間管理コマンドと名前空間添付ファイル コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは名前空間管理コマンドと名前空間添付ファイル コマンドをサポートします。 この値を に 0クリアすると、コントローラーは名前空間管理コマンドと名前空間添付ファイル コマンドをサポートしません。

OACS.DeviceSelfTest

OACS 構造体のビット 4 は、コントローラーが Device Self Test コマンドをサポートしているかどうかを示します。

OACS.Directives

OACS 構造体のビット 5 は、コントローラーがディレクティブ送信コマンドとディレクティブ受信コマンドをサポートしているかどうかを示します。

OACS.NVMeMICommands

OACS.VirtualizationMgmt

OACS.DoorBellBufferConfig

OACS.GetLBAStatus

OACS.Reserved

ビット 6:15: は予約されています。

ACL

コントローラーでサポートされている同時に未処理の Abort コマンドの最大数を示します。

これは 0 から始まる値です。 実装では、少なくとも 4 つの未処理の Abort コマンドを同時にサポートする必要があります。

AERL

コントローラーでサポートされている同時に未処理の 非同期イベント要求 コマンドの最大数を示します。

これは 0 から始まる値です。 実装では、少なくとも 4 つの未処理の非同期イベント要求コマンドを同時にサポートする必要があります。

FRMW

ファームウェアの更新に関する機能を示すフィールドを含むファームウェア 更新 (FRMW) 構造体。

FRMW.Slot1ReadOnly

FRMW 構造体のビット 0 は、最初のファームウェア スロット (スロット 1) が読み取り専用かどうかを示します。

この値が に 1設定されている場合、最初のファームウェア スロット (スロット 1) は読み取り専用です。 この値を に 0クリアすると、最初のファームウェア スロット (スロット 1) は読み取り/書き込みになります。 実装では、ベースラインの読み取り専用ファームウェア イメージを選択できます。

FRMW.SlotCount

FRMW 構造体のビット 1:3 は、コントローラーがサポートするファームウェア スロットの数を示します。

このフィールドは、少なくとも 1 つのファームウェア スロットがサポートされ、最大 7 つまでであることを示す、1 から 7 までの値を指定します。 これはファームウェア スロット 1 から 7 に対応します。

FRMW.ActivationWithoutReset

FRMW 構造体のビット 4 は、コントローラーがリセットなしでファームウェアのアクティブ化をサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーはリセットなしでファームウェアのアクティブ化をサポートします。 この値が に 0クリアされると、コントローラーはファームウェアをアクティブ化するためのリセットを必要とします。

FRMW.Reserved

FRMW 構造体のビット 5:7 が予約されています。

LPA

ログ ページの取得コマンドを使用してアクセスされるログ ページの省略可能な属性を示すフィールドを含む ログ ページ 属性 (LPA) 構造体。

LPA.SmartPagePerNamespace

LPA 構造体のビット 0 は、コントローラーが名前空間ごとに SMART/Health 情報ログ ページをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは、名前空間ごとに SMART/正常性情報ログ ページをサポートします。 この値を に 0クリアすると、コントローラーは、名前空間ごとに SMART/正常性情報ログ ページをサポートしません。

LPA.CommandEffectsLog

LPA 構造体のビット 1 は、コントローラーがコマンド効果ログ ページをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは [コマンド効果] ログ ページをサポートします。 この値を に 0クリアすると、コントローラーは [コマンド効果] ログ ページをサポートしていません。

LPA.LogPageExtendedData

LPA 構造体のビット 2 は、コントローラーがログ ページ拡張データをサポートしているかどうかを示します。

LPA.TelemetrySupport

LPA 構造体のビット 3 は、コントローラーがテレメトリ サポートをサポートしているかどうかを示します。

LPA.PersistentEventLog

LPA.Reserved0

LPA.TelemetryDataArea4

LPA.Reserved1

ELPE

コントローラーによって格納されるエラー情報ログ エントリの数を示します。 このフィールドは 0 から始まる値です。

NPSS

コントローラーでサポートされている NVM Express 電源状態の数を示します。 これは 0 から始まる値です。

電源状態は、電源状態 0 から順番に番号付けされます。 コントローラーは、少なくとも 1 つの電源状態 (電源状態 0 など) をサポートする必要があり、最大 31 個の追加の電源状態 (合計 32) をサポートできます。

AVSCC

ベンダー固有のコマンド処理の構成設定を示すフィールドを含む管理 ベンダー固有コマンド構成 (AVSCC) 構造体管理。

AVSCC.CommandFormatInSpec

AVSCC 構造体のビット 0 は、すべての管理ベンダー固有コマンドが、NVME_COMMAND構造体で定義されたコマンド形式を使用するかどうかを示します。

この値を に0クリアすると、すべての管理ベンダー固有コマンドの形式がベンダー固有であることを示します。 この値を に1設定すると、すべての管理ベンダー固有のコマンドでNVME_COMMAND構造が使用されることを示します。

AVSCC.Reserved

AVSCC 構造体のビット 1:7 が予約されています。

APSTA

自律電源状態遷移機能の属性を示すフィールドを含む 自律電源状態遷移属性 (APSTA) 構造体。

APSTA.Supported

APSTA 構造体のビット 0 は、コントローラーが自律電源状態遷移をサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは自律電源状態遷移をサポートします。 この値を に 0クリアすると、コントローラーは自律電源状態遷移をサポートしません。

APSTA.Reserved

APSTA 構造体のビット 1:7 が予約されています。

WCTEMP

最小複合温度フィールド値を示します (コントローラー操作が継続する過熱状態を示す SMART/Health Information ログで報告されます)。

直ちに修復することをお勧めします (追加の冷却やワークロードの削減など)。 プラットフォームは、この値より低い複合温度を維持するように努める必要があります。

このフィールドの 値 0h は、コントローラーによって警告温度しきい値が報告されていないことを示します。 NVMe Spec バージョン 1.2 以降に準拠している実装では、このフィールドに 0 以外の値を報告する必要があります。 実装では、このフィールドで の 0157h 値を報告することをお勧めします。

CCTEMP

重大な過熱状態を示す最小複合温度フィールド値 ([SMART/Health Information](ns-nvme-nvme_health_info_log.md log) で報告されます。 たとえば、通常の操作の継続、データ損失の可能性、デバイスの自動シャットダウン、極端なパフォーマンス調整、永続的な損傷を防ぐ可能性がある条件です。

このフィールドの 値 0h は、コントローラーによって重大な温度しきい値が報告されていないことを示します。 NVMe Spec バージョン 1.2 以降に準拠している実装では、このフィールドに 0 以外の値を報告する必要があります。

MTFA

コントローラーがファームウェア イメージをアクティブ化するためのコマンドの処理を一時的に停止する最大時間を示します。

このフィールドは、コントローラーがリセットなしでファームウェアのアクティブ化をサポートしている場合に有効です。 MFTA 値は 100 ミリ秒単位で指定されます。 の値 0h は、最大時間が未定義であることを示します。

HMPRE

ホスト メモリ バッファー 機能にホストが割り当てる必要がある優先サイズを 4 KB 単位で示します。

この値は、ホスト メモリ バッファーの最小サイズ (HMMIN) 以上である必要があります。

このフィールドが 0 以外の場合は、ホスト メモリ バッファー機能がサポートされます。 この値を に 0hクリアすると、ホスト メモリ バッファー機能はサポートされません。

HMMIN

ホスト メモリ バッファー機能にホストが割り当てる最小サイズを 4 KB 単位で示します。

この値が に 0クリアされると、 ホストは、HMPRE 値まで可能な任意の量のホスト メモリを割り当てるよう要求されます。

TNVMCAP[16]

NVM サブシステムの NVM 容量の合計をバイト単位で示します。

このフィールドは、名前空間管理コマンドと名前空間添付ファイル コマンドがサポートされている場合にサポートされます。

UNVMCAP[16]

NVM サブシステムの未割り当て NVM 容量をバイト単位で示します。

このフィールドは、名前空間管理コマンドと名前空間添付ファイル コマンドがサポートされている場合にサポートされます。

RPMBS

コントローラーが 1 つ以上の再生保護メモリ ブロック (RPMB) と関連する機能をサポートしているかどうかを示すフィールドを含む再生保護メモリ ブロックサポート (RPMBS) 構造体。

RPMBS.RPMBUnitCount

コントローラーがサポートする RPMB ターゲットの数を示します。

サポートされているすべての (保護されたメモリ ブロック) PMB ターゲットには、 RPMBS フィールドで定義されているのと同じ機能があります。 の値 0h は、コントローラーが RPMB をサポートしていないことを示します。 この値が 0 以外の場合、コントローラーはセキュリティ送信コマンドとセキュリティ受信コマンドをサポートします。

RPMBS.AuthenticationMethod

コントローラー内のすべての再生保護メモリ ブロック (RPMB) にアクセスするために使用される認証方法を示します。 このフィールドの値は次のとおりです。

定義
000b HMAC SHA-256
001b-111b 予約済み

RPMBS.Reserved0

予約済みフィールド。

RPMBS.TotalSize

コントローラーでサポートされている各 RPMB の合計サイズを 128 KB 単位で示します。 これは 0 から始まる値です。 の値 0h は、128 KB のサイズを示します。

RPMBS.AccessSize

このコントローラーの Security Send または Security Receive コマンドによって RPMB アクセスごとに読み取りまたは書き込み可能なサイズを 512B 単位で示します。

これは 0 から始まる値です。 の値 0h は、512B のサイズを示します。

EDSTT

拡張デバイスの自己テスト時間 (EDSTT) を示します。

DSTO

デバイス自己テスト オプション (DSTO) を示します。

FWUG

ファームウェア更新の粒度 (FWUG) を示します。

KAS

キープ アライブ サポート (KAS) を示します。

HCTMA

ホスト制御温度管理属性 (HCTMA) 構造。

HCTMA.Supported

ホスト制御温度管理属性がサポートされているかどうかを示します。

HCTMA.Reserved

この HCTMA 構造体フィールドは予約されています。

MNTMT

最小温度管理温度 (MNTMT)

MXTMT

最大温度管理温度 (MXTMT)

SANICAP

サニタイズ機能 (SANICAP)

SANICAP.CryptoErase

コントローラは暗号化消去サニタイズをサポートしています

SANICAP.BlockErase

コントローラーはブロック消去サニタイズをサポートしています

SANICAP.Overwrite

コントローラーでは、上書きサンタイズがサポートされます

SANICAP.Reserved

SANICAP.NDI

SANICAP.NODMMAS

HMMINDS

HMMAXD

NSETIDMAX

NVM Set Identifier Maximum

ENDGIDMAX

ANATT

ANACAP

ANACAP.OptimizedState

ANACAP.NonOptimizedState

ANACAP.InaccessibleState

ANACAP.PersistentLossState

ANACAP.ChangeState

ANACAP.Reserved

ANACAP.StaticANAGRPID

ANACAP.SupportNonZeroANAGRPID

ANAGRPMAX

NANAGRPID

PELS

Reserved1[156]

予約済みフィールド。

SQES

NVM コマンド セットを使用する場合に必要な最大送信キュー エントリ サイズを示すフィールドを含む送信キュー エントリ サイズ (SQES) 構造体。

SQES.RequiredEntrySize

SQES 構造体のビット 0:3 は、NVM コマンド セットを使用する場合に必要な送信キュー エントリ サイズを示します。

これは、使用できる最小エントリ サイズです。 値はバイト単位で、2 の累乗 (2^n) として報告されます。 必要な値は 6 で、64 バイトに対応します。

SQES.MaxEntrySize

SQES 構造体のビット 4:7 は、NVM コマンド セットを使用する場合の最大送信キュー エントリ サイズを示します。

この値は SQES 以上です。RequiredEntrySize 値。 値はバイト単位で、2 の累乗 (2^n) として報告されます。 推奨値は 6 で、標準の NVM コマンド セット SQ エントリ サイズ 64 バイトに対応します。 独自の拡張機能を実装するコントローラーでは、より大きな値がサポートされる場合があります。

CQES

NVM コマンド セットを使用する場合に必要な完了キュー エントリ サイズと最大完了キュー エントリ サイズを示すフィールドを含む完了キュー エントリ サイズ (CQES) 構造体。

CQES.RequiredEntrySize

CQES 構造体のビット 0:3 は、NVM コマンド セットを使用する場合に必要な完了キューエントリ サイズを示します。

これは、使用できる最小エントリ サイズです。 値はバイト単位で、2 の累乗 (2^n) として報告されます。 必要な値は 4 で、16 バイトに対応します。

CQES.MaxEntrySize

CQES 構造体のビット 4:7 は、NVM コマンド セットを使用する場合の最大完了キュー エントリ サイズを示します。

この値は、必要な CQ エントリ サイズ以上です。 値はバイト単位で、2 の累乗 (2^n) として報告されます。 推奨値は 4 で、標準の NVM コマンド セット CQ エントリ サイズ 16 バイトに対応します。 独自の拡張機能を実装するコントローラーでは、より大きな値がサポートされる場合があります。

MAXCMD

NN

コントローラーに存在する有効な名前空間の数を示します。

ONCS

コントローラーでサポートされるオプションの NVM コマンドと機能を示すフィールドを含む、オプションの NVM コマンド サポート (ONCS) 構造体。

ONCS.Compare

ONCS 構造体のビット 0 は、コントローラーが Compare コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは Compare コマンドをサポートします。 この値を に 0クリアすると、コントローラーは Compare コマンドをサポートしません。

ONCS.WriteUncorrectable

ONCS 構造体のビット 1 は、コントローラーが Write Uncorrectable コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは Write Uncorrectable コマンドをサポートします。 この値を に 0クリアすると、コントローラーは Write Uncorrectable コマンドをサポートしません。

ONCS.DatasetManagement

ONCS 構造体のビット 2 は、コントローラーが Dataset Management コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは Dataset Management コマンドをサポートします。 この値を に 0クリアすると、コントローラーは Dataset Management コマンドをサポートしません。

ONCS.WriteZeroes

ONCS 構造体のビット 3 は、コントローラーが Write Zeroes コマンドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは Write Zeroes コマンドをサポートします。 この値を に 0クリアすると、コントローラーは Write Zeroes コマンドをサポートしません。

ONCS.FeatureField

ONCS 構造体のビット 4 は、コントローラーが [機能の設定] コマンドの [保存] フィールドと[機能の取得] コマンドの [選択] フィールドをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは [機能の設定] コマンドの [保存] フィールドと、[機能の取得] コマンドの [選択] フィールドをサポートします。 この値を に 0クリアすると、コントローラーは [機能の設定] コマンドの [保存] フィールドと、[機能の取得] コマンドの [選択] フィールドをサポートしていません。

ONCS.Reservations

ONCS 構造体のビット 5 は、コントローラーが予約をサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは予約をサポートし、予約に関連付けられている次のコマンドもサポートします。

  • 予約レポート
  • 予約登録
  • 予約の取得
  • 予約リリース

この値が に 0クリアされると、コントローラーは予約をサポートしません。

ONCS.Timestamp

ONCS 構造体のビット 6 は、コントローラーが Timestamp (NVME_FEATURE_TIMESTAMP) 機能をサポートしているかどうかを示します。

ONCS.Verify

ONCS.Reserved

ONCS 構造体のビット 7:15 が予約されています。

FUSES

コントローラーがサポートする融合操作を示すフィールドを含む融合操作サポート (FUSES) 構造体。

FUSES.CompareAndWrite

FUSES 構造体のビット 0 は、コントローラーが比較および書き込み融合操作をサポートしているかどうかを示します。

この値を に 0クリアすると、コントローラーは Compare と Write の融合操作をサポートしません。 compare は、シーケンスの最初のコマンドになります。

FUSES.Reserved

FUSES 構造体のビット 15:1 が予約されています。

FNA

形式 NVM 属性 (FNA) の形式 NVM コマンドの属性を示すフィールドを含む構造体。

FNA.FormatApplyToAll

FNA 構造体のビット 0 は、フォーマット操作がすべての名前空間に適用されるか、特定の名前空間に固有であるかを示します。

この値を に 1設定すると、すべての名前空間が同じ属性で構成され、名前空間の形式がすべての名前空間の形式になります。 この値を に 0クリアすると、コントローラーは名前空間ごとに形式をサポートします。

FNA.SecureEraseApplyToAll

FNA 構造体のビット 1 は、暗号化消去機能とユーザー データ消去機能がすべての名前空間に適用されるか、特定の名前空間に固有であるかを示します。

この値が に 1設定されている場合、形式の一部として特定の名前空間を暗号化消去すると、すべての名前空間が暗号化によって消去され、書式の一部として特定の名前空間のユーザー データが消去されると、すべての名前空間がユーザー データによって消去されます。 この値を に 0クリアすると、形式の一部として暗号化消去またはユーザー データ消去が名前空間ごとに実行されます。

FNA.CryptographicEraseSupported

FNA 構造体のビット 2 は、暗号化消去がセキュリティで保護された消去機能の一部としてサポートされているかどうかを示します。

この値を に 1設定すると、暗号化消去がサポートされます。 この値を に 0クリアすると、暗号化消去はサポートされません。

FNA.FormatSupportNSIDAllF

FNA.Reserved

FNA 構造体のビット 7:3 が予約されています。

VWC

実装での揮発性書き込みキャッシュの存在に関連する属性を示すフィールドを含む揮発性書き込みキャッシュ (VWC) 構造体。

VWC.Present

VWC 構造体のビット 0 は、揮発性書き込みキャッシュが存在することを示します。

この値が に1設定されている場合、揮発性書き込みキャッシュが存在し、ホストが Flush コマンドを発行し、NVME_FEATURE_VOLATILE_WRITE_CACHE機能識別子を指定する [機能の設定] コマンドを使用して揮発性書き込みキャッシュを有効にするかどうかを制御できます。

この値を に 0クリアすると、揮発性書き込みキャッシュは存在しません。

揮発性書き込みキャッシュが存在しない場合、Flush コマンドは正常に完了し、影響を受けず、NVME_FEATURE_VOLATILE_WRITE_CACHE識別子セットを持つ [機能の設定] コマンドはNVME_STATUS_INVALID_FIELD_IN_COMMANDの状態で失敗し、NVME_FEATURE_VOLATILE_WRITE_CACHE識別子セットを持つフィーチャーの取得、NVME_STATUS_INVALID_FIELD_IN_COMMANDの状態で失敗します。

VWC.FlushBehavior

VWC.Reserved

VWC 構造体のビット 1:7 が予約されています。

AWUN

通常の操作中にサポートされている名前空間形式を持つすべての名前空間にわたって、NVM にアトミックに書き込むことが保証されている書き込み操作のサイズを示します。 このフィールドは論理ブロックで指定され、0 から始まる値です。

特定の名前空間で、このフィールドで報告されるサイズよりも大きいサイズが保証されている場合、この名前空間固有のサイズは、名前空間の識別データ構造の NAWUN フィールドで報告されます。

AWUN 値以下のサイズで書き込みコマンドが送信された場合、ホストは、他の読み取りまたは書き込みコマンドに関して、書き込みコマンドが NVM に対してアトミックであることが保証されます。 書き込みコマンドが AWUN 値より大きいサイズで送信された場合、コマンドのアトミック性は保証されません。

AWUN 値には、電源障害によって発生した書き込みエラーには適用できません。 詳細については、「Atomic Write Unit Power Fail (AWUPF)」フィールドを参照してください。

FFFFh 値は、これが最大のコマンド サイズであるため、すべてのコマンドがアトミックであることを示します。 実装では、論理ブロック アクセス (LBA) サイズに基づいて適切にスケーリングされた、少なくとも 128 KB をサポートする必要があります。

AWUPF

電源障害またはエラー状態の間に、サポートされている名前空間形式を持つすべての名前空間にわたって NVM にアトミックに書き込むことが保証される書き込み操作のサイズを示します。 このフィールドは論理ブロックで指定され、0 から始まる値です。

特定の名前空間で、このフィールドで報告されるサイズよりも大きいサイズが保証されている場合、この名前空間固有のサイズは、名前空間の識別データ構造の NAWUPF フィールドで報告されます。 AWUPF 値は、AWUN 値以下である必要があります。

書き込みコマンドが AWUPF 値以下のサイズで送信された場合、ホストは、他の読み取りまたは書き込みコマンドに関して NVM に対して書き込みがアトミックであることが保証されます。 このサイズより大きい書き込みコマンドが送信された場合、コマンドのアトミック性は保証されません。 書き込みサイズが AWUPF 値以下で、書き込みコマンドが失敗した場合、関連する論理ブロックの後続の読み取りコマンドは、前の正常な書き込みコマンドからデータを返します。

書き込みコマンドが AWUPF 値より大きいサイズで送信された場合、関連する論理ブロックの後続の読み取りで返されるデータの保証はありません。

NVSCC

NVM ベンダー固有のコマンド処理の構成設定を示すフィールドを含む NVM ベンダー固有のコマンド構成 (NVSCC) 構造体。

NVSCC.CommandFormatInSpec

NVSCC 構造体のビット 0 は、すべての NVM ベンダー固有のコマンドが図 13 で定義されている形式を使用するかどうかを示します。

この値が に 1設定されている場合、NVM ベンダー固有のコマンドはすべて、図 13 で定義されている形式を使用します。 この値を に 0クリアすると、すべての NVM ベンダー固有コマンドの形式がベンダー固有であることを示します。

NVSCC.Reserved

NVSCC 構造体のビット 1:7 が予約されています。

NWPC

NWPC.WriteProtect

NWPC.UntilPowerCycle

NWPC.Permanent

NWPC.Reserved

ACWU

Compare 操作と Write 融合操作でサポートされている名前空間形式を使用して、すべての名前空間にわたって NVM にアトミックに書き込むことが保証される書き込み操作のサイズを示します。

特定の名前空間で、このフィールドで報告されるサイズよりも大きいサイズが保証されている場合、この名前空間固有のサイズは、名前空間の識別データ構造の NACWU フィールドで報告されます。

このフィールドは、比較と書き込みの融合コマンドがサポートされている場合にサポートされます。 このフィールドは論理ブロックで指定され、0 から始まる値です。 この値より大きい転送サイズを要求する Compare と Write が送信された場合、コントローラーはコマンドの状態が NVME_STATUS_INVALID_FIELD_IN_COMMAND で失敗する可能性があります。

Compare と Write がサポートされている融合コマンドでない場合、このフィールドの値は になります 0h

Reserved4[2]

予約済みフィールド。

SGLS

NVM コマンド セットとサポートされる SGL 型に対して散布図収集Lists (SGL) をサポートするかどうかを指定するフィールドを含む SGL サポート (SGLS) 構造体。

SGLS.SGLSupported

この値が に 1設定されている場合、コントローラーは、SGL データ ブロック、SGL セグメント、および SGL Last Segment 記述子の種類を含む NVM コマンド セットの SGL をサポートします。 この値を に 0クリアすると、コントローラーは NVM コマンド セットの SGL をサポートせず、このフィールド内の他のすべてのビットは に 0クリアされます。

SGLS.KeyedSGLData

SGLS.Reserved0

予約済みフィールド。

SGLS.BitBucketDescrSupported

この値が に 1設定されている場合、SGL ビット バケット記述子がサポートされます。 この値を に 0クリアすると、SGL ビット バケット記述子はサポートされません。

SGLS.ByteAlignedContiguousPhysicalBuffer

この値が に 1設定されている場合、メタデータのバイトアラインされた連続した物理バッファー (図 12 のメタデータ ポインター フィールド) の使用がサポートされています。 この値を に 0クリアすると、メタデータのバイトアラインされた連続した物理バッファーの使用はサポートされません。

SGLS.SGLLengthLargerThanDataLength

この値が に 1設定されている場合、コントローラーは、転送するデータの量よりも長い長さのデータまたはメタデータ SGL を含むコマンドをサポートします。 この値を に 0クリアすると、SGL の長さは転送されるデータの量と等しくなります。

SGLS.MPTRSGLDescriptor

SGLS.AddressFieldSGLDataBlock

SGLS.TransportSGLData

SGLS.Reserved1

予約済みフィールド。

MNAN

Reserved6[224]

バイト 704:2047 は、I/O コマンド セット属性用に予約されています。

SUBNQN[256]

Reserved7[768]

Reserved8[256]

PDS[32]

32 個の電源状態記述子の配列を格納します。 配列の各メンバーは、Power State Descriptor の特性を示す 32 ビット フィールドです。 このフィールドの形式は、 NVME_POWER_STATE_DESC 構造体で定義されます。

配列内の構造体の 0 から始まる位置は、Power State 0 記述子 (PSD0) が位置 0、Power State 1 記述子 (PSD1) が 1 の位置、31 桁目の Power State 31 記述子 (PSD31) までなど、電源状態記述子の名前に対応します。

VS[1024]

バイト 3072:4095 は、ベンダー固有の使用に割り当てられます。

注釈

VIDSN、MN フィールドの値を組み合わせて、NVM サブシステムを識別するグローバルに一意の値を形成できます。

要件

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