struttura SRBEX_DATA_NVME_COMMAND (srb.h)
La struttura SRBEX_DATA_NVME_COMMAND consente all'utente di incorniciare ed eseguire un comando in formato NVMe. Questa struttura è attualmente riservata all'uso del sistema.
Sintassi
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;
Membri
Type
Tipo di comando. Attualmente deve essere impostato su SrbExDataTypeNvmeCommand.
Length
Dimensioni di questa struttura, in byte.
ControllerHandle
Handle miniport per il controller NVMe.
Reserved0
Riservato; non usare.
CommandDWORD0
Comando Dword 0 all'interno del comando NVMe (vedere le specifiche NVMe ).
CommandNSID
Identificatore dello spazio dei nomi all'interno del comando NVMe (vedere le specifiche NVMe ).
Reserved1[2]
CommandMPTR
Puntatore ai metadati all'interno del comando NVMe (vedere le specifiche NVMe ).
CommandPRP1
Pagina Area fisica (PRP) Voce 1 all'interno del comando NVMe (vedere le specifiche NVMe ). Per indicare che sono presenti informazioni PRP, l'utente deve impostare il flag SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY di SRBEX_DATA_NVME_COMMAND_FLAG.
CommandPRP2
PRP Entry 2 all'interno del comando NVMe (vedere le specifiche NVMe ). Per indicare che sono presenti informazioni PRP, l'utente deve impostare il flag SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY di SRBEX_DATA_NVME_COMMAND_FLAG.
CommandSGL1[2]
CommandCDW10
Dword 10 specifico del comando (vedere le specifiche NVMe ).
CommandCDW11
Dword 11 specifico del comando (vedere le specifiche NVMe ).
CommandCDW12
Dword 12 specifico del comando (vedere le specifiche NVMe ).
CommandCDW13
Dword 13 specifico del comando (vedere le specifiche NVMe ).
CommandCDW14
Dword 14 specifico del comando (vedere le specifiche NVMe ).
CommandCDW15
Dword 15 specifico del comando (vedere le specifiche NVMe ).
FabricsCommand
NVMEOF_FABRICS_COMMAND in nvme.h
FabricsCommand.OPC
Opcode (7Fh).
FabricsCommand.PSDT
PRP o SGL per il trasferimento dei dati. (vengono usati solo i bit 7:6, il resto è riservato).
FabricsCommand.CID
Identificatore del comando Fabrics.
FabricsCommand.FCTYPE
Tipo di comando Fabrics.
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
Per fare riferimento al comando DW0 (vedere le specifiche NVMe ).
Command.OPC
Opcode (OPC).
Command.FUSE
Operazione fuse (FUSE).
Command.Reserved
Riservato; non usare.
Command.PSDT
PRP o SGL per il trasferimento dei dati.
Command.CID
Identificatore del comando.
Command.TypeSpecific[60]
CommandType
Valore SRBEX_DATA_NVME_COMMAND_TYPE che specifica il tipo di comando NVMe.
Reserved2
Riservato; non usare.
CommandFlags
Valore SRBEX_DATA_NVME_COMMAND_FLAG che specifica le proprietà di questo comando NVMe di dati SRBEX.
ResponseFlags
Definito in SRBEX_DATA_NVME_RESPONSE_FLAG.
CommandStatus
Campo Stato della voce Coda di completamento (vedere le specifiche NVMe ).
CommandStatus.DUMMYSTRUCTNAME
Struttura incorporata.
CommandStatus.DUMMYSTRUCTNAME.P
Tag fase (P).
CommandStatus.DUMMYSTRUCTNAME.SC
Codice di stato (SC).
CommandStatus.DUMMYSTRUCTNAME.SCT
Tipo di codice di stato (SCT).
CommandStatus.DUMMYSTRUCTNAME.CRD
Ritardo dei tentativi di comando (CRD).
CommandStatus.DUMMYSTRUCTNAME.M
Altro (M).
CommandStatus.DUMMYSTRUCTNAME.DNR
Non riprovare (DNR).
CommandStatus.AsUshort
QID
ID coda specificato dall'utente (vedere le specifiche NVMe ). Se non specificato, impostare questo valore su 0xFFFFFFFF.
CommandTag
Identificatore univoco specificato dall'utente per l'identificatore del comando per contrassegnare un comando specifico. Un utente può usare CommandTag per tracciare il risultato del comando in una traccia ETW (Event Tracing for Windows), ad esempio nel log di archiviazione del Visualizzatore eventi.
CQEntryDW0
Voce della coda di completamento DW0.
CQEntryDW1
Voce della coda di completamento DW1.
Specific[8]
SQHD
Puntatore head SQ nella voce della coda di completamento.
SQID
Identificatore SQ.
Fabbisogno
Requisito | Valore |
---|---|
server minimo supportato | Windows Server 2022 |
intestazione | srb.h |