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 エントリ 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 を使用して、Windows イベント トレース (ETW) トレース (たとえば、イベント ビューアーのストレージ ログ) でコマンドの結果をトレースできます。
CQEntryDW0
完了キュー エントリ DW0。
CQEntryDW1
完了キュー エントリ DW1。
Specific[8]
SQHD
完了キュー エントリ内の SQ ヘッド ポインター。
SQID
SQ 識別子。
要件
要件 | 値 |
---|---|
サポートされている最小のサーバー | Windows Server 2022 |
Header | srb.h |