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) Entry 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
Opcode (7Fh) 。
FabricsCommand.PSDT
數據傳輸的 PRP 或 SGL。 (只使用位7:6,其餘部分會保留) 。
FabricsCommand.CID
網狀架構命令標識碼。
FabricsCommand.FCTYPE
網狀架構命令類型。
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
若要參考命令 DW0 (請參閱 NVMe 規格) 。
Command.OPC
Opcode (OPC) 。
Command.FUSE
Fused 作業 (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
使用者指定的佇列標識碼 (請參閱 NVMe 規格) 。 如果未指定,請將此值設定為 0xFFFFFFFF。
CommandTag
命令標識碼的唯一使用者指定識別碼,以標示特定命令。 使用者可以使用 CommandTag 來追蹤 Windows (ETW 事件追蹤) 追蹤 (中命令的結果,例如 事件檢視器 記憶體記錄) 。
CQEntryDW0
完成佇列專案 DW0。
CQEntryDW1
完成佇列專案 DW1。
Specific[8]
SQHD
完成佇列專案中的 SQ 前端指標。
SQID
SQ 識別碼。
規格需求
需求 | 值 |
---|---|
最低支援的伺服器 | Windows Server 2022 |
標頭 | srb.h |