SRBEX_DATA_NVME_COMMAND Struktur (srb.h)
Mit der SRBEX_DATA_NVME_COMMAND-Struktur kann der Benutzer einen Befehl im NVMe-Format framen und ausgeben. Diese Struktur ist zurzeit für die Systemverwendung reserviert.
Syntax
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;
Angehörige
Type
Befehlstyp. Derzeit muss dies auf SrbExDataTypeNvmeCommandfestgelegt werden.
Length
Größe dieser Struktur in Byte.
ControllerHandle
Miniport-Handle für den NVMe-Controller.
Reserved0
Reserviert; nicht verwenden.
CommandDWORD0
Command Dword 0 innerhalb des NVMe-Befehls (siehe NVMe-Spezifikationen).
CommandNSID
Namespacebezeichner innerhalb des NVMe-Befehls (siehe NVMe-Spezifikationen).
Reserved1[2]
CommandMPTR
Metadatenzeiger im NVMe-Befehl (siehe NVMe-Spezifikationen).
CommandPRP1
Seite für physische Region (PRP) Eintrag 1 im NVMe-Befehl (siehe NVMe-Spezifikationen). Um anzugeben, dass PRP-Informationen vorhanden sind, muss der Benutzer das SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY Kennzeichen SRBEX_DATA_NVME_COMMAND_FLAGfestlegen.
CommandPRP2
PRP-Eintrag 2 im NVMe-Befehl (siehe NVMe-Spezifikationen). Um anzugeben, dass PRP-Informationen vorhanden sind, muss der Benutzer das SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY Kennzeichen SRBEX_DATA_NVME_COMMAND_FLAGfestlegen.
CommandSGL1[2]
CommandCDW10
Befehlsspezifische Dword 10 (siehe NVMe-Spezifikationen).
CommandCDW11
Befehlsspezifische Dword 11 (siehe NVMe-Spezifikationen).
CommandCDW12
Befehlsspezifische Dword 12 (siehe NVMe-Spezifikationen).
CommandCDW13
Befehlsspezifische Dword 13 (siehe NVMe-Spezifikationen).
CommandCDW14
Befehlsspezifische dword 14 (siehe NVMe-Spezifikationen).
CommandCDW15
Befehlsspezifische dword 15 (siehe NVMe-Spezifikationen).
FabricsCommand
NVMEOF_FABRICS_COMMAND in nvme.h
FabricsCommand.OPC
Opcode (7Fh).
FabricsCommand.PSDT
PRP oder SGL für die Datenübertragung. (Nur Bits 7:6 werden verwendet, der Rest ist reserviert).
FabricsCommand.CID
Fabrics-Befehlsbezeichner.
FabricsCommand.FCTYPE
Fabrics-Befehlstyp.
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
Informationen zum Verweisen auf Befehl DW0 (siehe NVMe-Spezifikationen).
Command.OPC
Opcode (OPC).
Command.FUSE
Fused Operation (FUSE).
Command.Reserved
Reserviert; nicht verwenden.
Command.PSDT
PRP oder SGL für die Datenübertragung.
Command.CID
Befehlsbezeichner.
Command.TypeSpecific[60]
CommandType
Ein SRBEX_DATA_NVME_COMMAND_TYPE Wert, der den NVMe-Befehlstyp angibt.
Reserved2
Reserviert; nicht verwenden.
CommandFlags
Ein SRBEX_DATA_NVME_COMMAND_FLAG Wert, der die Eigenschaften dieses SRBEX-Daten-NVMe-Befehls angibt.
ResponseFlags
Definiert in SRBEX_DATA_NVME_RESPONSE_FLAG.
CommandStatus
Statusfeld aus dem Eintrag "Vervollständigungswarteschlange" (siehe NVMe-Spezifikationen).
CommandStatus.DUMMYSTRUCTNAME
Eingebettete Struktur.
CommandStatus.DUMMYSTRUCTNAME.P
Phase-Tag (P).
CommandStatus.DUMMYSTRUCTNAME.SC
Statuscode (SC).
CommandStatus.DUMMYSTRUCTNAME.SCT
Statuscodetyp (SCT).
CommandStatus.DUMMYSTRUCTNAME.CRD
Befehlsrücklaufverzögerung (CRD).
CommandStatus.DUMMYSTRUCTNAME.M
Mehr (M).
CommandStatus.DUMMYSTRUCTNAME.DNR
Wiederholen Sie den Vorgang nicht (DNR).
CommandStatus.AsUshort
QID
Vom Benutzer angegebene Warteschlangen-ID (siehe NVMe-Spezifikationen). Wenn nicht angegeben, legen Sie diesen Wert auf 0xFFFFFFFF fest.
CommandTag
Eindeutiger benutzerdefinierter Bezeichner für den Befehlsbezeichner, um einen bestimmten Befehl zu markieren. Ein Benutzer kann CommandTag- verwenden, um das Ergebnis des Befehls in einer Ereignisablaufverfolgung für Windows (ETW)-Ablaufverfolgung (z. B. im Speicherprotokoll der Ereignisanzeige) nachzuverfolgen.
CQEntryDW0
Vervollständigungswarteschlangeneintrag DW0.
CQEntryDW1
Vervollständigungswarteschlangeneintrag DW1.
Specific[8]
SQHD
SQ-Kopfzeiger im Vervollständigungswarteschlangeneintrag.
SQID
SQ-ID.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Server- | Windows Server 2022 |
Header- | srb.h |