Win32 API 日本語リファレンス
ホームStorage.Nvme › NVME_NVM_COMMANDS

NVME_NVM_COMMANDS

列挙型
基底型i4

メンバー 16

名前10進16進説明
NVME_NVM_COMMAND_FLUSH00x0指定されたネームスペースに関連付けられたデータおよびメタデータを不揮発性メディアにコミットする Flush コマンドです。このフラッシュは、Flush コマンドの送信より前に完了したすべてのコマンドに適用されます。コントローラーは、任意のネームスペースの追加のデータやメタデータをフラッシュすることもあります。
NVME_NVM_COMMAND_WRITE10x1

指定された論理ブロックについて、データおよび該当する場合はメタデータを NVM コントローラーに書き込む Write コマンドです。ホストは、操作の一部として含める保護情報を指定することもできます。

このコマンドは、Command Dword 10、Command Dword 11、Command Dword 12、Command Dword 13、Command Dword 14、および Command Dword 15 の各フィールドを使用します。コマンドがデータ転送に PRP を使用する場合は、Metadata Pointer、PRP Entry 1、および PRP Entry 2 の各フィールドが使用されます。コマンドがデータ転送に SGL を使用する場合は、Metadata SGL Segment Pointer および SGL Entry 1 の各フィールドが使用されます。

NVME_NVM_COMMAND_READ20x2

指定された論理ブロックについて、データおよび該当する場合はメタデータを NVM コントローラーから読み取る Read コマンドです。このコマンドでは、読み取り操作の一部としてチェックする保護情報を指定できます。

このコマンドは、Command Dword 10、Command Dword 11、Command Dword 12、Command Dword 13、Command Dword 14、および Command Dword 15 の各フィールドを使用します。コマンドがデータ転送に PRP を使用する場合は、Metadata Pointer、PRP Entry 1、および PRP Entry 2 の各フィールドが使用されます。コマンドがデータ転送に SGL を使用する場合は、Metadata SGL Segment Pointer および SGL Entry 1 の各フィールドが使用されます。

NVME_NVM_COMMAND_WRITE_UNCORRECTABLE40x4

論理ブロックの範囲を無効としてマークするために使用される Write Uncorrectable コマンドです。この操作の後に指定された論理ブロックが読み取られると、Unrecovered Read Error ステータス を伴う失敗が返されます。無効な論理ブロックの状態を解除するには、それらの論理ブロックに対して書き込み操作を実行します。

使用されるフィールドは、Command Dword 10、Command Dword 11、および Command Dword 12 の各フィールドです。その他のコマンド固有のフィールドはすべて予約済みです。

NVME_NVM_COMMAND_COMPARE50x5

コマンドで指定された論理ブロックをメディアから読み取り、読み取ったデータを、コマンドの一部として転送された比較データ バッファーと比較する Compare コマンドです。コントローラーから読み取ったデータと比較データ バッファーが一致し、不一致がない場合、コマンドは正常に完了します。不一致がある場合、コマンドは Compare Failure エラーで完了します。メタデータが提供されている場合は、メタデータについても比較が行われます。

このコマンドは、Command Dword 10、Command Dword 11、Command Dword 12、Command Dword 14、および Command Dword 15 の各フィールドを使用します。コマンドがデータ転送に PRP を使用する場合は、Metadata Pointer、PRP Entry 1、および PRP Entry 2 の各フィールドが使用されます。コマンドがデータ転送に SGL を使用する場合は、Metadata SGL Segment Pointer および SGL Entry 1 の各フィールドが使用されます。その他のコマンド固有のフィールドはすべて予約済みです。

NVME_NVM_COMMAND_WRITE_ZEROES80x8

論理ブロックの範囲を 0 に設定するために使用される Write Zeroes コマンドです。このコマンドが正常に完了した後、この範囲の論理ブロックを以降に読み取ると、この LBA 範囲に書き込みが行われるまで 0 が返されます。このコマンドのメタデータはすべて 0 になり、保護情報は CDW12.PRINFO に基づいて更新されます。

使用されるフィールドは、Command Dword 10、Command Dword 11、Command Dword 12、Command Dword 14、および Command Dword 15 の各フィールドです。

NVME_NVM_COMMAND_DATASET_MANAGEMENT90x9

論理ブロックの範囲に対する属性をホストが示すために使用する Dataset Management コマンドです。

これには、データが読み取りまたは書き込みされる頻度、アクセス サイズ、およびパフォーマンスや信頼性の最適化に使用される可能性があるその他の情報などの属性が含まれます。このコマンドは助言的なものであり、準拠したコントローラーは、提供された情報に基づいて何も動作を行わないことを選択できます。

このコマンドは、Command Dword 10 および Command Dword 11 の各フィールドを使用します。コマンドがデータ転送に PRP を使用する場合は、PRP Entry 1 および PRP Entry 2 の各フィールドが使用されます。コマンドがデータ転送に SGL を使用する場合は、SGL Entry 1 フィールドが使用されます。その他のコマンド固有のフィールドはすべて予約済みです。

NVME_NVM_COMMAND_VERIFY120xC
NVME_NVM_COMMAND_RESERVATION_REGISTER130xD

予約キーの登録、登録解除、または置換に使用される Reservation Register コマンドです。

このコマンドは、Command Dword 10 と、メモリ内の Reservation Register データ構造を使用します。コマンドがデータ転送に PRP を使用する場合は、PRP Entry 1 および PRP Entry 2 の各フィールドが使用されます。コマンドがデータ転送に SGL を使用する場合は、SGL Entry 1 フィールドが使用されます。その他のコマンド固有のフィールドはすべて予約済みです。

NVME_NVM_COMMAND_RESERVATION_REPORT140xE

ネームスペースの登録および予約の状態を記述する Reservation Status データ構造をメモリに返す Reservation Report コマンドです。

Reservation Status データ構造のサイズは、そのネームスペースの登録者であるホストに関連付けられた NVM サブシステム内のコントローラーの数によって決まります (たとえば、該当する各コントローラーごとに Registered Controller データ構造が存在します)。

NVME_NVM_COMMAND_RESERVATION_ACQUIRE170x11

ネームスペースに対する予約の取得、ネームスペースに保持されている予約のプリエンプト、およびネームスペースに保持されている予約の中止に使用される Reservation Acquire コマンドです。

このコマンドは、Command Dword 10 と、メモリ内の Reservation Acquire データ構造を使用します。コマンドがデータ転送に PRP を使用する場合は、PRP Entry 1 および PRP Entry 2 の各フィールドが使用されます。コマンドがデータ転送に SGL を使用する場合は、SGL Entry 1 フィールドが使用されます。その他のコマンド固有のフィールドはすべて予約済みです。

NVME_NVM_COMMAND_RESERVATION_RELEASE210x15

ネームスペースに保持されている予約の解放またはクリアに使用される Reservation Release コマンドです。

このコマンドは、Command Dword 10 と、メモリ内の Reservation Release データ構造を使用します。コマンドがデータ転送に PRP を使用する場合は、PRP Entry 1 および PRP Entry 2 の各フィールドが使用されます。コマンドがデータ転送に SGL を使用する場合は、SGL Entry 1 フィールドが使用されます。その他のコマンド固有のフィールドはすべて予約済みです。

NVME_NVM_COMMAND_COPY250x19
NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND1210x79
NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE1220x7A
NVME_NVM_COMMAND_ZONE_APPEND1250x7D

公式ドキュメント

NVM コマンド セット内のコマンドを示す値が含まれます。

解説(Remarks)

NVM コマンドは、Controller Status レジスタに示されるとおりコントローラーの準備が完了し、適切な I/O 送信キューおよび I/O 完了キューが作成された後に、ホストによって送信されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum NVME_NVM_COMMANDS : int {
    NVME_NVM_COMMAND_FLUSH = 0,
    NVME_NVM_COMMAND_WRITE = 1,
    NVME_NVM_COMMAND_READ = 2,
    NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 4,
    NVME_NVM_COMMAND_COMPARE = 5,
    NVME_NVM_COMMAND_WRITE_ZEROES = 8,
    NVME_NVM_COMMAND_DATASET_MANAGEMENT = 9,
    NVME_NVM_COMMAND_VERIFY = 12,
    NVME_NVM_COMMAND_RESERVATION_REGISTER = 13,
    NVME_NVM_COMMAND_RESERVATION_REPORT = 14,
    NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 17,
    NVME_NVM_COMMAND_RESERVATION_RELEASE = 21,
    NVME_NVM_COMMAND_COPY = 25,
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 121,
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 122,
    NVME_NVM_COMMAND_ZONE_APPEND = 125
} NVME_NVM_COMMANDS;
public enum NVME_NVM_COMMANDS : int
{
    NVME_NVM_COMMAND_FLUSH = 0,
    NVME_NVM_COMMAND_WRITE = 1,
    NVME_NVM_COMMAND_READ = 2,
    NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 4,
    NVME_NVM_COMMAND_COMPARE = 5,
    NVME_NVM_COMMAND_WRITE_ZEROES = 8,
    NVME_NVM_COMMAND_DATASET_MANAGEMENT = 9,
    NVME_NVM_COMMAND_VERIFY = 12,
    NVME_NVM_COMMAND_RESERVATION_REGISTER = 13,
    NVME_NVM_COMMAND_RESERVATION_REPORT = 14,
    NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 17,
    NVME_NVM_COMMAND_RESERVATION_RELEASE = 21,
    NVME_NVM_COMMAND_COPY = 25,
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 121,
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 122,
    NVME_NVM_COMMAND_ZONE_APPEND = 125,
}
Public Enum NVME_NVM_COMMANDS As Integer
    NVME_NVM_COMMAND_FLUSH = 0
    NVME_NVM_COMMAND_WRITE = 1
    NVME_NVM_COMMAND_READ = 2
    NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 4
    NVME_NVM_COMMAND_COMPARE = 5
    NVME_NVM_COMMAND_WRITE_ZEROES = 8
    NVME_NVM_COMMAND_DATASET_MANAGEMENT = 9
    NVME_NVM_COMMAND_VERIFY = 12
    NVME_NVM_COMMAND_RESERVATION_REGISTER = 13
    NVME_NVM_COMMAND_RESERVATION_REPORT = 14
    NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 17
    NVME_NVM_COMMAND_RESERVATION_RELEASE = 21
    NVME_NVM_COMMAND_COPY = 25
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 121
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 122
    NVME_NVM_COMMAND_ZONE_APPEND = 125
End Enum
import enum

class NVME_NVM_COMMANDS(enum.IntEnum):
    NVME_NVM_COMMAND_FLUSH = 0
    NVME_NVM_COMMAND_WRITE = 1
    NVME_NVM_COMMAND_READ = 2
    NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 4
    NVME_NVM_COMMAND_COMPARE = 5
    NVME_NVM_COMMAND_WRITE_ZEROES = 8
    NVME_NVM_COMMAND_DATASET_MANAGEMENT = 9
    NVME_NVM_COMMAND_VERIFY = 12
    NVME_NVM_COMMAND_RESERVATION_REGISTER = 13
    NVME_NVM_COMMAND_RESERVATION_REPORT = 14
    NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 17
    NVME_NVM_COMMAND_RESERVATION_RELEASE = 21
    NVME_NVM_COMMAND_COPY = 25
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 121
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 122
    NVME_NVM_COMMAND_ZONE_APPEND = 125
// NVME_NVM_COMMANDS
pub const NVME_NVM_COMMAND_FLUSH: i32 = 0;
pub const NVME_NVM_COMMAND_WRITE: i32 = 1;
pub const NVME_NVM_COMMAND_READ: i32 = 2;
pub const NVME_NVM_COMMAND_WRITE_UNCORRECTABLE: i32 = 4;
pub const NVME_NVM_COMMAND_COMPARE: i32 = 5;
pub const NVME_NVM_COMMAND_WRITE_ZEROES: i32 = 8;
pub const NVME_NVM_COMMAND_DATASET_MANAGEMENT: i32 = 9;
pub const NVME_NVM_COMMAND_VERIFY: i32 = 12;
pub const NVME_NVM_COMMAND_RESERVATION_REGISTER: i32 = 13;
pub const NVME_NVM_COMMAND_RESERVATION_REPORT: i32 = 14;
pub const NVME_NVM_COMMAND_RESERVATION_ACQUIRE: i32 = 17;
pub const NVME_NVM_COMMAND_RESERVATION_RELEASE: i32 = 21;
pub const NVME_NVM_COMMAND_COPY: i32 = 25;
pub const NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND: i32 = 121;
pub const NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE: i32 = 122;
pub const NVME_NVM_COMMAND_ZONE_APPEND: i32 = 125;
// NVME_NVM_COMMANDS
const (
	NVME_NVM_COMMAND_FLUSH int32 = 0
	NVME_NVM_COMMAND_WRITE int32 = 1
	NVME_NVM_COMMAND_READ int32 = 2
	NVME_NVM_COMMAND_WRITE_UNCORRECTABLE int32 = 4
	NVME_NVM_COMMAND_COMPARE int32 = 5
	NVME_NVM_COMMAND_WRITE_ZEROES int32 = 8
	NVME_NVM_COMMAND_DATASET_MANAGEMENT int32 = 9
	NVME_NVM_COMMAND_VERIFY int32 = 12
	NVME_NVM_COMMAND_RESERVATION_REGISTER int32 = 13
	NVME_NVM_COMMAND_RESERVATION_REPORT int32 = 14
	NVME_NVM_COMMAND_RESERVATION_ACQUIRE int32 = 17
	NVME_NVM_COMMAND_RESERVATION_RELEASE int32 = 21
	NVME_NVM_COMMAND_COPY int32 = 25
	NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND int32 = 121
	NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE int32 = 122
	NVME_NVM_COMMAND_ZONE_APPEND int32 = 125
)
const
  NVME_NVM_COMMAND_FLUSH = 0;
  NVME_NVM_COMMAND_WRITE = 1;
  NVME_NVM_COMMAND_READ = 2;
  NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 4;
  NVME_NVM_COMMAND_COMPARE = 5;
  NVME_NVM_COMMAND_WRITE_ZEROES = 8;
  NVME_NVM_COMMAND_DATASET_MANAGEMENT = 9;
  NVME_NVM_COMMAND_VERIFY = 12;
  NVME_NVM_COMMAND_RESERVATION_REGISTER = 13;
  NVME_NVM_COMMAND_RESERVATION_REPORT = 14;
  NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 17;
  NVME_NVM_COMMAND_RESERVATION_RELEASE = 21;
  NVME_NVM_COMMAND_COPY = 25;
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 121;
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 122;
  NVME_NVM_COMMAND_ZONE_APPEND = 125;
// NVME_NVM_COMMANDS
pub const NVME_NVM_COMMAND_FLUSH: i32 = 0;
pub const NVME_NVM_COMMAND_WRITE: i32 = 1;
pub const NVME_NVM_COMMAND_READ: i32 = 2;
pub const NVME_NVM_COMMAND_WRITE_UNCORRECTABLE: i32 = 4;
pub const NVME_NVM_COMMAND_COMPARE: i32 = 5;
pub const NVME_NVM_COMMAND_WRITE_ZEROES: i32 = 8;
pub const NVME_NVM_COMMAND_DATASET_MANAGEMENT: i32 = 9;
pub const NVME_NVM_COMMAND_VERIFY: i32 = 12;
pub const NVME_NVM_COMMAND_RESERVATION_REGISTER: i32 = 13;
pub const NVME_NVM_COMMAND_RESERVATION_REPORT: i32 = 14;
pub const NVME_NVM_COMMAND_RESERVATION_ACQUIRE: i32 = 17;
pub const NVME_NVM_COMMAND_RESERVATION_RELEASE: i32 = 21;
pub const NVME_NVM_COMMAND_COPY: i32 = 25;
pub const NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND: i32 = 121;
pub const NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE: i32 = 122;
pub const NVME_NVM_COMMAND_ZONE_APPEND: i32 = 125;
const
  NVME_NVM_COMMAND_FLUSH* = 0
  NVME_NVM_COMMAND_WRITE* = 1
  NVME_NVM_COMMAND_READ* = 2
  NVME_NVM_COMMAND_WRITE_UNCORRECTABLE* = 4
  NVME_NVM_COMMAND_COMPARE* = 5
  NVME_NVM_COMMAND_WRITE_ZEROES* = 8
  NVME_NVM_COMMAND_DATASET_MANAGEMENT* = 9
  NVME_NVM_COMMAND_VERIFY* = 12
  NVME_NVM_COMMAND_RESERVATION_REGISTER* = 13
  NVME_NVM_COMMAND_RESERVATION_REPORT* = 14
  NVME_NVM_COMMAND_RESERVATION_ACQUIRE* = 17
  NVME_NVM_COMMAND_RESERVATION_RELEASE* = 21
  NVME_NVM_COMMAND_COPY* = 25
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND* = 121
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE* = 122
  NVME_NVM_COMMAND_ZONE_APPEND* = 125
enum NVME_NVM_COMMANDS : int {
    NVME_NVM_COMMAND_FLUSH = 0,
    NVME_NVM_COMMAND_WRITE = 1,
    NVME_NVM_COMMAND_READ = 2,
    NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 4,
    NVME_NVM_COMMAND_COMPARE = 5,
    NVME_NVM_COMMAND_WRITE_ZEROES = 8,
    NVME_NVM_COMMAND_DATASET_MANAGEMENT = 9,
    NVME_NVM_COMMAND_VERIFY = 12,
    NVME_NVM_COMMAND_RESERVATION_REGISTER = 13,
    NVME_NVM_COMMAND_RESERVATION_REPORT = 14,
    NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 17,
    NVME_NVM_COMMAND_RESERVATION_RELEASE = 21,
    NVME_NVM_COMMAND_COPY = 25,
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 121,
    NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 122,
    NVME_NVM_COMMAND_ZONE_APPEND = 125,
}
#define global NVME_NVM_COMMAND_FLUSH                   0x0
#define global NVME_NVM_COMMAND_WRITE                   0x1
#define global NVME_NVM_COMMAND_READ                    0x2
#define global NVME_NVM_COMMAND_WRITE_UNCORRECTABLE     0x4
#define global NVME_NVM_COMMAND_COMPARE                 0x5
#define global NVME_NVM_COMMAND_WRITE_ZEROES            0x8
#define global NVME_NVM_COMMAND_DATASET_MANAGEMENT      0x9
#define global NVME_NVM_COMMAND_VERIFY                  0xC
#define global NVME_NVM_COMMAND_RESERVATION_REGISTER    0xD
#define global NVME_NVM_COMMAND_RESERVATION_REPORT      0xE
#define global NVME_NVM_COMMAND_RESERVATION_ACQUIRE     0x11
#define global NVME_NVM_COMMAND_RESERVATION_RELEASE     0x15
#define global NVME_NVM_COMMAND_COPY                    0x19
#define global NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND    0x79
#define global NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE 0x7A
#define global NVME_NVM_COMMAND_ZONE_APPEND             0x7D