次の方法で共有


NVME_STATUS_GENERIC_COMMAND_CODES列挙 (nvme.h)

コマンドに関連付けられた状態を示す値が含まれています。これは、さまざまな種類のコマンドに対して汎用です。

これらの状態コードは、NVME_STATUS_TYPE_GENERIC_COMMAND状態コードの種類 であり、コマンドの完了時に 完了キュー エントリにコントローラーによってポストされます。 このコードは、完了キュー 項目のコマンドおよびサブミッション・キュー ID で指定されたコマンドが完了したことを示します。

構文

typedef enum {
  NVME_STATUS_SUCCESS_COMPLETION,
  NVME_STATUS_INVALID_COMMAND_OPCODE,
  NVME_STATUS_INVALID_FIELD_IN_COMMAND,
  NVME_STATUS_COMMAND_ID_CONFLICT,
  NVME_STATUS_DATA_TRANSFER_ERROR,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION,
  NVME_STATUS_INTERNAL_DEVICE_ERROR,
  NVME_STATUS_COMMAND_ABORT_REQUESTED,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND,
  NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT,
  NVME_STATUS_COMMAND_SEQUENCE_ERROR,
  NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR,
  NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR,
  NVME_STATUS_DATA_SGL_LENGTH_INVALID,
  NVME_STATUS_METADATA_SGL_LENGTH_INVALID,
  NVME_STATUS_SGL_DESCR_TYPE_INVALID,
  NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER,
  NVME_STATUS_PRP_OFFSET_INVALID,
  NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED,
  NVME_STATUS_OPERATION_DENIED,
  NVME_STATUS_SGL_OFFSET_INVALID,
  NVME_STATUS_RESERVED,
  NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT,
  NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED,
  NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT,
  NVME_STATUS_SANITIZE_FAILED,
  NVME_STATUS_SANITIZE_IN_PROGRESS,
  NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID,
  NVME_STATUS_DIRECTIVE_TYPE_INVALID,
  NVME_STATUS_DIRECTIVE_ID_INVALID,
  NVME_STATUS_NVM_LBA_OUT_OF_RANGE,
  NVME_STATUS_NVM_CAPACITY_EXCEEDED,
  NVME_STATUS_NVM_NAMESPACE_NOT_READY,
  NVME_STATUS_NVM_RESERVATION_CONFLICT,
  NVME_STATUS_FORMAT_IN_PROGRESS
} NVME_STATUS_GENERIC_COMMAND_CODES;

定数

 
NVME_STATUS_SUCCESS_COMPLETION
コマンドは正常に完了しました。
NVME_STATUS_INVALID_COMMAND_OPCODE
関連付けられているコマンドオペコード フィールドが無効です。
NVME_STATUS_INVALID_FIELD_IN_COMMAND
コマンド パラメーターに無効なフィールドまたはサポートされていないフィールドが指定されています。
NVME_STATUS_COMMAND_ID_CONFLICT
コマンド識別子は既に使用されています。

手記

ID 競合を検索するコマンドの数は、実装固有です。

NVME_STATUS_DATA_TRANSFER_ERROR
コマンドに関連付けられているデータまたはメタデータの転送中にエラーが発生したことを示します。
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION
電源損失通知が原因でコマンドが中止されたことを示します。
NVME_STATUS_INTERNAL_DEVICE_ERROR
内部エラーのため、コマンドが正常に完了できませんでした。 内部デバイス エラーの詳細は、非同期イベントとして返されます。
NVME_STATUS_COMMAND_ABORT_REQUESTED
このコマンドの送信キュー識別子とコマンド識別子を指定したコマンド中止コマンドが受信されたため、コマンドが中止されました。
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION
コマンドが送信された送信キューに対して受信した I/O 送信キューの削除要求が原因で、コマンドが中止されました。
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND
融合された操作の他のコマンドが失敗したため、コマンドが中止されました。
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND
コンパニオン 融合コマンドが後続のサブミッション キュー エントリとして見つからないため、コマンドが中止されました。
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT
名前空間またはその名前空間の形式が無効です。
NVME_STATUS_COMMAND_SEQUENCE_ERROR
複数コマンド シーケンスのプロトコル違反が原因で、コマンドが中止されました。 たとえば、TCG ストレージ同期インターフェイス通信プロトコルのセキュリティ送受信シーケンス規則違反などです。
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR
このコマンドには、無効な SGL Last Segment 記述子または SGL Segment 記述子が含まれています。 これは、SGL Last Segment 記述子が指す SGL セグメントに SGL セグメント記述子、SGL Last Segment 記述子、または SGL Segment 記述子が含まれている場合に発生する可能性があります。 これは、SGL Last Segment 記述子に無効な長さ (たとえば、長さが 0 または 16 の倍数ではない長さ) が含まれている場合に発生する可能性があります。
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR
指定された長さに基づいて、セグメントの最後の記述子以外の場所に SGL Last Segment 記述子または SGL Segment 記述子があります。
NVME_STATUS_DATA_SGL_LENGTH_INVALID
これは、データ SGL の長さが短すぎる場合に発生する可能性があります。 これは、データ SGL の長さが長すぎて、コントローラーが、識別コントローラー (NVME_IDENTIFY_CONTROLLER_DATA) データ構造の SGL サポート (SGLS) フィールドに示されているように転送されるデータの量より長いデータ転送をサポートしていない場合に発生する可能性があります。
NVME_STATUS_METADATA_SGL_LENGTH_INVALID
これは、メタデータ SGL の長さが短すぎる場合に発生する可能性があります。 これは、メタデータ SGL の長さが長すぎて、コントローラーが、識別コントローラー (NVME_IDENTIFY_CONTROLLER_DATA) データ構造の SGL サポート (SGLS) フィールドに示されているように、転送されるデータの量より長いデータ転送をサポートしていない場合に発生する可能性があります。
NVME_STATUS_SGL_DESCR_TYPE_INVALID
SGL 記述子の型は、コントローラーでサポートされていない型です。
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER
コントローラー メモリ バッファーの使用試行は、コントローラーではサポートされていません。
NVME_STATUS_PRP_OFFSET_INVALID
PRP エントリの [オフセット] フィールドが無効です。 これは、最初のエントリの後に 0 以外のオフセットを持つ PRP エントリがある場合に発生する可能性があります。
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED
指定された長さがアトミック書き込み単位サイズを超えています。
NVME_STATUS_OPERATION_DENIED
アクセス権がないため、コマンドが拒否されました。
NVME_STATUS_SGL_OFFSET_INVALID
記述子で指定されたオフセットが無効です。
NVME_STATUS_RESERVED
引っ込み思案。
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT
NVM サブシステムは、異なるコントローラーで 64 ビットと 128 ビットのホスト識別子の値を同時に使用しているのを検出しました。
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED
キープ アライブ タイマーの有効期限が切れています。
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID
指定されたキープ アライブ タイムアウト値が無効です。
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT
予約取得アクション (RACQA) が 010b (Preempt および Abort) に設定されている Reservation Acquire コマンドが原因で、コマンドが中止されました。
NVME_STATUS_SANITIZE_FAILED
最新のサニタイズ操作が失敗し、復旧アクションが正常に完了していない。
NVME_STATUS_SANITIZE_IN_PROGRESS
サニタイズ操作の進行中は、要求された関数 (コマンドなど) は禁止されています。
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID
SGLData ブロック記述子のアドレスアラインメントまたは長さの粒度が無効です。
NVME_STATUS_NVM_LBA_OUT_OF_RANGE
このコマンドは、名前空間のサイズを超える LBA を参照します。
NVME_STATUS_NVM_CAPACITY_EXCEEDED
コマンドを実行すると、名前空間の容量を超えました。 このエラーは、名前空間使用率が名前空間の容量を超えた場合に発生します。
NVME_STATUS_NVM_NAMESPACE_NOT_READY
名前空間にアクセスする準備ができていません。 再試行不可ビットは、後でコマンドを再発行しても成功するかどうかを示します。
NVME_STATUS_NVM_RESERVATION_CONFLICT
アクセスされた名前空間に保持されている予約との競合により、コマンドが中止されました。
NVME_STATUS_FORMAT_IN_PROGRESS
名前空間は現在書式設定されています。 再試行不可ビットは、コマンドが再送信された場合に成功する可能性があることを示すために、'0' にクリアされます。

必要条件

要件 価値
サポートされる最小クライアント Windows 10
ヘッダー nvme.h