estructura SRBEX_DATA_NVME_COMMAND (srb.h)
La estructura SRBEX_DATA_NVME_COMMAND permite al usuario enmarcar y emitir un comando en formato NVMe. Esta estructura está reservada actualmente para uso del sistema.
Sintaxis
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;
Miembros
Type
Tipo de comando. Actualmente, debe establecerse en SrbExDataTypeNvmeCommand.
Length
Tamaño de esta estructura, en bytes.
ControllerHandle
Controlador de Miniport para el controlador NVMe.
Reserved0
Reservado; no usar.
CommandDWORD0
Comando Dword 0 en el comando NVMe (consulte las especificaciones nvMe).
CommandNSID
Identificador de espacio de nombres en el comando NVMe (consulte las especificaciones nvMe).
Reserved1[2]
CommandMPTR
Puntero de metadatos dentro del comando NVMe (consulte las especificaciones nvMe).
CommandPRP1
Página región física (PRP) Entrada 1 dentro del comando NVMe (consulte las especificaciones nvMe). Para indicar que la información del PRP está presente, el usuario debe establecer la marca SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY de SRBEX_DATA_NVME_COMMAND_FLAG.
CommandPRP2
PrP Entrada 2 en el comando NVMe (consulte las especificaciones nvMe). Para indicar que la información del PRP está presente, el usuario debe establecer la marca SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY de SRBEX_DATA_NVME_COMMAND_FLAG.
CommandSGL1[2]
CommandCDW10
Dword 10 específico del comando (consulte las especificaciones nvMe).
CommandCDW11
Dword 11 específica del comando (consulte las especificaciones nvMe).
CommandCDW12
Dword 12 específico del comando (consulte las especificaciones nvMe).
CommandCDW13
Dword 13 específico del comando (consulte las especificaciones nvMe).
CommandCDW14
Dword 14 específica del comando (consulte las especificaciones nvMe).
CommandCDW15
Dword 15 específica del comando (consulte las especificaciones nvMe).
FabricsCommand
NVMEOF_FABRICS_COMMAND en nvme.h
FabricsCommand.OPC
Código de operación (7Fh).
FabricsCommand.PSDT
PRP o SGL para la transferencia de datos. (solo se usan bits 7:6, el resto están reservados).
FabricsCommand.CID
Identificador de comando de Fabrics.
FabricsCommand.FCTYPE
Tipo de comando Fabrics.
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
Para hacer referencia al comando DW0 (consulte las especificaciones nvMe).
Command.OPC
Opcode (OPC).
Command.FUSE
Operación fusionada (FUSE).
Command.Reserved
Reservado; no usar.
Command.PSDT
PRP o SGL para la transferencia de datos.
Command.CID
Identificador del comando.
Command.TypeSpecific[60]
CommandType
Valor de SRBEX_DATA_NVME_COMMAND_TYPE que especifica el tipo de comando NVMe.
Reserved2
Reservado; no usar.
CommandFlags
Valor SRBEX_DATA_NVME_COMMAND_FLAG que especifica las propiedades de este comando NVMe de datos SRBEX.
ResponseFlags
Definido en SRBEX_DATA_NVME_RESPONSE_FLAG.
CommandStatus
Campo de estado de la entrada Cola de finalización (consulte las especificaciones nvMe).
CommandStatus.DUMMYSTRUCTNAME
Estructura incrustada.
CommandStatus.DUMMYSTRUCTNAME.P
Etiqueta de fase (P).
CommandStatus.DUMMYSTRUCTNAME.SC
Código de estado (SC).
CommandStatus.DUMMYSTRUCTNAME.SCT
Tipo de código de estado (SCT).
CommandStatus.DUMMYSTRUCTNAME.CRD
Retraso de reintento de comandos (CRD).
CommandStatus.DUMMYSTRUCTNAME.M
Más (M).
CommandStatus.DUMMYSTRUCTNAME.DNR
No vuelva a intentarlo (DNR).
CommandStatus.AsUshort
QID
Identificador de cola especificado por el usuario (consulte las especificaciones de NVMe). Si no se especifica, establezca este valor en 0xFFFFFFFF.
CommandTag
Identificador único y especificado por el usuario para el identificador de comando para marcar un comando específico. Un usuario puede usar CommandTag para realizar un seguimiento del resultado del comando en un seguimiento de Seguimiento de eventos para Windows (ETW) (por ejemplo, en el registro de almacenamiento de Visor de eventos).
CQEntryDW0
Entrada de cola de finalización DW0.
CQEntryDW1
Entrada de cola de finalización DW1.
Specific[8]
SQHD
Puntero principal de SQ en la entrada de cola de finalización.
SQID
Identificador SQ.
Requisitos
Requisito | Value |
---|---|
Servidor mínimo compatible | Windows Server 2022 |
Encabezado | srb.h |