SRBEX_DATA_NVME_COMMAND構造体 (srb.h)
SRBEX_DATA_NVME_COMMAND 構造体を使用すると、ユーザーは NVMe 形式でコマンドをフレーム化して発行できます。 この構造体は現在、システム用に予約されています。
構文
typedef struct _SRBEX_DATA_NVME_COMMAND {
SRBEXDATATYPE Type;
ULONG Length;
union {
PVOID ControllerHandle;
ULONGLONG Reserved0;
};
union {
struct {
ULONG CommandDWORD0;
ULONG CommandNSID;
ULONG Reserved1[2];
ULONGLONG CommandMPTR;
union {
struct {
ULONGLONG CommandPRP1;
ULONGLONG CommandPRP2;
};
ULONGLONG CommandSGL1[2];
};
ULONG CommandCDW10;
ULONG CommandCDW11;
ULONG CommandCDW12;
ULONG CommandCDW13;
ULONG CommandCDW14;
ULONG CommandCDW15;
};
struct {
UCHAR OPC;
UCHAR PSDT;
USHORT CID;
UCHAR FCTYPE;
UCHAR Reserved[35];
UCHAR Specific[24];
} FabricsCommand;
struct {
ULONG OPC : 8;
ULONG FUSE : 2;
ULONG Reserved : 4;
ULONG PSDT : 2;
ULONG CID : 16;
UCHAR TypeSpecific[60];
} Command;
};
UCHAR CommandType;
UCHAR Reserved2;
USHORT CommandFlags;
USHORT ResponseFlags;
union {
struct {
USHORT P : 1;
USHORT SC : 8;
USHORT SCT : 3;
USHORT CRD : 2;
USHORT M : 1;
USHORT DNR : 1;
} DUMMYSTRUCTNAME;
USHORT AsUshort;
} CommandStatus;
ULONG QID;
ULONG CommandTag;
union {
struct {
ULONG CQEntryDW0;
ULONG CQEntryDW1;
};
UCHAR Specific[8];
};
USHORT SQHD;
USHORT SQID;
} SRBEX_DATA_NVME_COMMAND, *PSRBEX_DATA_NVME_COMMAND;
メンバーズ
Type
コマンドの種類。 現在、これは SrbExDataTypeNvmeCommand に設定する必要があります。
Length
この構造体のサイズ (バイト単位)。
ControllerHandle
NVMe コントローラーのミニポートのハンドル。
Reserved0
引っ込み思案;使用しないでください。
CommandDWORD0
NVMe コマンド内のコマンド Dword 0 (NVMe の仕様を参照)。
CommandNSID
NVMe コマンド内の名前空間識別子 (NVMe 仕様を参照)。
Reserved1[2]
CommandMPTR
NVMe コマンド内のメタデータ ポインター (NVMe 仕様を参照)。
CommandPRP1
NVMe コマンド内の物理領域ページ (PRP) エントリ 1 (NVMe 仕様を参照)。 PRP 情報が存在することを示すには、ユーザーは SRBEX_DATA_NVME_COMMAND_FLAGの SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY フラグを設定する必要があります。
CommandPRP2
NVMe コマンド内の PRP Entry 2 (NVMe 仕様を参照)。 PRP 情報が存在することを示すには、ユーザーは SRBEX_DATA_NVME_COMMAND_FLAGの SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY フラグを設定する必要があります。
CommandSGL1[2]
CommandCDW10
コマンド固有の Dword 10 (NVMe 仕様を参照)。
CommandCDW11
コマンド固有の Dword 11 (NVMe 仕様を参照)。
CommandCDW12
コマンド固有の Dword 12 (NVMe 仕様を参照)。
CommandCDW13
コマンド固有の Dword 13 (NVMe 仕様を参照)。
CommandCDW14
コマンド固有の Dword 14 (NVMe 仕様を参照)。
CommandCDW15
コマンド固有の Dword 15 (NVMe 仕様を参照)。
FabricsCommand
nvme.h での NVMEOF_FABRICS_COMMAND
FabricsCommand.OPC
オペコード (7Fh)。
FabricsCommand.PSDT
データ転送用の PRP または SGL。 (ビット 7:6 のみが使用され、残りは予約されています)。
FabricsCommand.CID
Fabrics コマンド識別子。
FabricsCommand.FCTYPE
Fabrics コマンドの種類。
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
コマンド DW0 を参照するには (NVMe の仕様を参照してください)。
Command.OPC
オペコード (OPC)。
Command.FUSE
融合操作 (FUSE)。
Command.Reserved
引っ込み思案;使用しないでください。
Command.PSDT
データ転送用の PRP または SGL。
Command.CID
コマンド識別子。
Command.TypeSpecific[60]
CommandType
NVMe コマンドの種類を指定する SRBEX_DATA_NVME_COMMAND_TYPE 値。
Reserved2
引っ込み思案;使用しないでください。
CommandFlags
この SRBEX データ NVMe コマンドのプロパティを指定する SRBEX_DATA_NVME_COMMAND_FLAG 値。
ResponseFlags
SRBEX_DATA_NVME_RESPONSE_FLAGで定義されます。
CommandStatus
完了キュー項目の状況フィールド (NVMe 仕様を参照)。
CommandStatus.DUMMYSTRUCTNAME
埋め込み構造。
CommandStatus.DUMMYSTRUCTNAME.P
フェーズ タグ (P)。
CommandStatus.DUMMYSTRUCTNAME.SC
状態コード (SC)。
CommandStatus.DUMMYSTRUCTNAME.SCT
状態コードの種類 (SCT)。
CommandStatus.DUMMYSTRUCTNAME.CRD
コマンド再試行遅延 (CRD)。
CommandStatus.DUMMYSTRUCTNAME.M
詳細 (M)。
CommandStatus.DUMMYSTRUCTNAME.DNR
再試行しないでください (DNR)。
CommandStatus.AsUshort
QID
ユーザー指定のキュー ID (NVMe の仕様を参照)。 指定しない場合は、この値を 0xFFFFFFFF に設定します。
CommandTag
特定のコマンドをマークするコマンド識別子の一意のユーザー指定識別子。 ユーザーは、CommandTag を使用して、イベント トレーシング for Windows (ETW) トレース (イベント ビューアーのストレージ ログなど) でコマンドの結果をトレースできます。
CQEntryDW0
完了キュー エントリ DW0。
CQEntryDW1
完了キュー エントリ DW1。
Specific[8]
SQHD
完了キュー エントリの SQ ヘッド ポインター。
SQID
SQ 識別子。
必要条件
要件 | 価値 |
---|---|
サポートされる最小サーバー | Windows Server 2022 |
ヘッダー | srb.h |