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
NVMEOF_FABRICS_COMMAND nvme.h
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
融合運算(FUSE)。
Command.Reserved
保留;請勿使用 。
Command.PSDT
用於數據傳輸的 PRP 或 SGL。
Command.CID
命令標識碼。
Command.TypeSpecific[60]
CommandType
指定 NVMe 命令類型的 SRBEX_DATA_NVME_COMMAND_TYPE 值。
Reserved2
保留;請勿使用 。
CommandFlags
SRBEX_DATA_NVME_COMMAND_FLAG 值,指定此 SRBEX 數據 NVMe 命令的屬性。
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 事件追蹤中命令的結果(例如,在事件查看器的記憶體記錄檔中)。
CQEntryDW0
完成佇列專案 DW0。
CQEntryDW1
完成佇列專案 DW1。
Specific[8]
SQHD
完成佇列專案中的 SQ 前端指標。
SQID
SQ 識別碼。
要求
要求 | 價值 |
---|---|
支援的最低伺服器 | Windows Server 2022 |
標頭 | srb.h |