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 は、ベンダー固有の使用に割り当てられます。
注釈
VID、SN、MN フィールドの値を組み合わせて、NVM サブシステムを識別するグローバルに一意の値を形成できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
Header | nvme.h |