Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |