struktur SRBEX_DATA_NVME_COMMAND (srb.h)
Struktur SRBEX_DATA_NVME_COMMAND memungkinkan pengguna untuk membingkai dan mengeluarkan perintah dalam format NVMe. Struktur ini saat ini dicadangkan untuk penggunaan sistem.
Sintaks
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;
Anggota
Type
Jenis perintah. Saat ini ini harus diatur ke SrbExDataTypeNvmeCommand.
Length
Ukuran struktur ini, dalam byte.
ControllerHandle
Handel Miniport untuk pengontrol NVMe.
Reserved0
Dipesan; jangan gunakan.
CommandDWORD0
Perintah Dword 0 dalam perintah NVMe (lihat spesifikasi NVMe).
CommandNSID
Pengidentifikasi namespace dalam perintah NVMe (lihat spesifikasi NVMe).
Reserved1[2]
CommandMPTR
Penunjuk metadata dalam perintah NVMe (lihat spesifikasi NVMe).
CommandPRP1
Halaman wilayah fisik (PRP) Entri 1 dalam perintah NVMe (lihat spesifikasi NVMe). Untuk menunjukkan bahwa informasi PRP ada, pengguna harus mengatur bendera SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADYSRBEX_DATA_NVME_COMMAND_FLAG.
CommandPRP2
Entri PRP 2 dalam perintah NVMe (lihat spesifikasi NVMe). Untuk menunjukkan bahwa informasi PRP ada, pengguna harus mengatur bendera SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADYSRBEX_DATA_NVME_COMMAND_FLAG.
CommandSGL1[2]
CommandCDW10
Dword 10 khusus perintah (lihat spesifikasi NVMe).
CommandCDW11
Dword 11 khusus perintah (lihat spesifikasi NVMe).
CommandCDW12
Dword 12 khusus perintah (lihat spesifikasi NVMe).
CommandCDW13
Dword 13 khusus perintah (lihat spesifikasi NVMe).
CommandCDW14
Dword 14 khusus perintah (lihat spesifikasi NVMe).
CommandCDW15
Dword 15 khusus perintah (lihat spesifikasi NVMe).
FabricsCommand
NVMEOF_FABRICS_COMMAND dalam nvme.h
FabricsCommand.OPC
Opcode (7Fh).
FabricsCommand.PSDT
PRP atau SGL untuk transfer data. (hanya bit 7:6 yang digunakan, sisanya dicadangkan).
FabricsCommand.CID
Pengidentifikasi perintah Fabrics.
FabricsCommand.FCTYPE
Jenis perintah Fabrics.
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
Untuk mereferensikan perintah DW0 (lihat spesifikasi NVMe).
Command.OPC
Opcode (OPC).
Command.FUSE
Fused Operation (FUSE).
Command.Reserved
Dipesan; jangan gunakan.
Command.PSDT
PRP atau SGL untuk transfer data.
Command.CID
Pengidentifikasi perintah.
Command.TypeSpecific[60]
CommandType
Nilai SRBEX_DATA_NVME_COMMAND_TYPE yang menentukan jenis perintah NVMe.
Reserved2
Dipesan; jangan gunakan.
CommandFlags
Nilai SRBEX_DATA_NVME_COMMAND_FLAG yang menentukan properti perintah NVMe data SRBEX ini.
ResponseFlags
Ditentukan dalam SRBEX_DATA_NVME_RESPONSE_FLAG.
CommandStatus
Bidang status dari entri Antrean Penyelesaian (lihat spesifikasi NVMe).
CommandStatus.DUMMYSTRUCTNAME
Struktur tersemat.
CommandStatus.DUMMYSTRUCTNAME.P
Tag fase (P).
CommandStatus.DUMMYSTRUCTNAME.SC
Kode status (SC).
CommandStatus.DUMMYSTRUCTNAME.SCT
Jenis kode status (SCT).
CommandStatus.DUMMYSTRUCTNAME.CRD
Penundaan coba lagi perintah (CRD).
CommandStatus.DUMMYSTRUCTNAME.M
Lainnya (M).
CommandStatus.DUMMYSTRUCTNAME.DNR
Jangan coba lagi (DNR).
CommandStatus.AsUshort
QID
ID antrean yang ditentukan pengguna (lihat spesifikasi NVMe). Jika tidak ditentukan, atur nilai ini ke 0xFFFFFFFF.
CommandTag
Pengidentifikasi unik yang ditentukan pengguna untuk pengidentifikasi perintah untuk menandai perintah tertentu. Pengguna dapat menggunakan CommandTag untuk melacak hasil perintah dalam pelacakan Peristiwa untuk Windows (ETW) (misalnya, di log Penyimpanan Pemantau Peristiwa).
CQEntryDW0
Entri antrean penyelesaian DW0.
CQEntryDW1
Entri antrean penyelesaian DW1.
Specific[8]
SQHD
Penunjuk kepala SQ dalam entri antrean penyelesaian.
SQID
Pengidentifikasi SQ.
Persyaratan
Persyaratan | Nilai |
---|---|
Server minimum yang didukung | Windows Server 2022 |
Header | srb.h |