次の方法で共有


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;

Members

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 サブシステムには単一の 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/Health 情報ログ ページをサポートします。 この値を 0にクリアすると、コントローラーは名前空間ごとに SMART/Health 情報ログ ページをサポートしません。

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/ヘルス情報 ログで報告)を示します。

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

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

CCTEMP

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

このフィールドの値 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) へのアクセスに使用される認証方法を示します。 このフィールドの値は次のとおりです。

価値 Definition
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 で、64 バイトの標準 NVM コマンド セット SQ エントリ サイズに対応します。 独自の拡張機能を実装するコントローラーでは、より大きな値がサポートされる場合があります。

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 で、16 バイトの標準 NVM コマンド セット CQ エントリ サイズに対応します。 独自の拡張機能を実装するコントローラーでは、より大きな値がサポートされる場合があります。

MAXCMD

NN

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

ONCS

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

ONCS.Compare

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

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

ONCS.WriteUncorrectable

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

この値が 1 に設定されている場合、コントローラーは、修正不可能な書き込みコマンドをサポートします。 この値を 0にクリアすると、コントローラーは、修正不可能な書き込みコマンドをサポートしません。

ONCS.DatasetManagement

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

この値を 1 に設定すると、コントローラーはデータセット管理コマンドをサポートします。 この値を 0にクリアすると、コントローラーはデータセット管理コマンドをサポートしません。

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 は、コントローラーがタイムスタンプ (NVME_FEATURE_TIMESTAMP) 機能をサポートしているかどうかを示します。

ONCS.Verify

ONCS.Reserved

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

FUSES

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

FUSES.CompareAndWrite

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

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

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 値には、停電に起因する書き込みエラーには適用できません。 詳細については、アトミック書き込みユニットの電源障害 (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

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

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

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

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

Reserved4[2]

予約済みフィールド。

SGLS

NVM コマンド セットとサポートされる SGL 型に対して散布図収集リスト (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 個の電源状態記述子の配列を格納します。 配列の各メンバーは、電源状態記述子の特性を示す 32 ビット フィールドです。 このフィールドの形式は、 NVME_POWER_STATE_DESC 構造体で定義されます。

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

VS[1024]

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

注釈

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

Requirements

Requirement 価値
サポートされる最小クライアント Windows 10
Header nvme.h