estrutura SRBEX_DATA_NVME_COMMAND (srb.h)
A estrutura SRBEX_DATA_NVME_COMMAND permite que o usuário enquadrou e emita um comando no formato NVMe. No momento, essa estrutura está reservada para uso do sistema.
Sintaxe
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;
Membros
Type
Tipo de comando. Atualmente, isso deve ser definido como SrbExDataTypeNvmeCommand.
Length
Tamanho dessa estrutura, em bytes.
ControllerHandle
Identificador do Miniport para o controlador NVMe.
Reserved0
Reservado; não use.
CommandDWORD0
Comando Dword 0 no comando NVMe (consulte as especificações do NVMe).
CommandNSID
Identificador de namespace no comando NVMe (consulte as especificações do NVMe).
Reserved1[2]
CommandMPTR
Ponteiro de metadados dentro do comando NVMe (consulte as especificações do NVMe).
CommandPRP1
Página de região física (PRP) Entrada 1 no comando NVMe (consulte as especificações do NVMe). Para indicar que as informações de PRP estão presentes, o usuário deve definir o sinalizador SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY de SRBEX_DATA_NVME_COMMAND_FLAG.
CommandPRP2
Entrada PRP 2 no comando NVMe (consulte as especificações do NVMe). Para indicar que as informações de PRP estão presentes, o usuário deve definir o sinalizador SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY de SRBEX_DATA_NVME_COMMAND_FLAG.
CommandSGL1[2]
CommandCDW10
Dword 10 específico do comando (consulte as especificações do NVMe).
CommandCDW11
Dword 11 específico do comando (consulte as especificações do NVMe).
CommandCDW12
Dword 12 específico do comando (consulte as especificações do NVMe).
CommandCDW13
Dword 13 específico do comando (consulte as especificações do NVMe).
CommandCDW14
Dword 14 específico do comando (consulte as especificações do NVMe).
CommandCDW15
Dword 15 específico do comando (consulte as especificações do NVMe).
FabricsCommand
NVMEOF_FABRICS_COMMAND em nvme.h
FabricsCommand.OPC
Opcode (7Fh).
FabricsCommand.PSDT
PRP ou SGL para transferência de dados. (somente os bits 7:6 são usados, o restante é reservado).
FabricsCommand.CID
Identificador de comando fabrics.
FabricsCommand.FCTYPE
Tipo de comando Fabrics.
FabricsCommand.Reserved[35]
FabricsCommand.Specific[24]
Command
Para fazer referência ao comando DW0 (consulte as especificações do NVMe).
Command.OPC
Opcode (OPC).
Command.FUSE
Operação fundida (FUSE).
Command.Reserved
Reservado; não use.
Command.PSDT
PRP ou SGL para transferência de dados.
Command.CID
Identificador do comando.
Command.TypeSpecific[60]
CommandType
Um valor SRBEX_DATA_NVME_COMMAND_TYPE que especifica o tipo de comando NVMe.
Reserved2
Reservado; não use.
CommandFlags
Um valor SRBEX_DATA_NVME_COMMAND_FLAG que especifica as propriedades desse comando NVMe de dados SRBEX.
ResponseFlags
Definido em SRBEX_DATA_NVME_RESPONSE_FLAG.
CommandStatus
Campo Status da entrada Fila de Conclusão (consulte as especificações do NVMe).
CommandStatus.DUMMYSTRUCTNAME
Estrutura inserida.
CommandStatus.DUMMYSTRUCTNAME.P
Marca de fase (P).
CommandStatus.DUMMYSTRUCTNAME.SC
Código de status (SC).
CommandStatus.DUMMYSTRUCTNAME.SCT
Tipo de código de status (SCT).
CommandStatus.DUMMYSTRUCTNAME.CRD
CRD (atraso de repetição de comando).
CommandStatus.DUMMYSTRUCTNAME.M
Mais (M).
CommandStatus.DUMMYSTRUCTNAME.DNR
Não tente novamente (DNR).
CommandStatus.AsUshort
QID
ID da fila especificada pelo usuário (consulte as especificações do NVMe). Se não for especificado, defina esse valor como 0xFFFFFFFF.
CommandTag
Identificador exclusivo especificado pelo usuário para o identificador de comando marcar um comando específico. Um usuário pode usar CommandTag para rastrear o resultado do comando em um rastreamento ETW (Rastreamento de Eventos para Windows) (por exemplo, no log de Armazenamento do Visualizador de Eventos).
CQEntryDW0
Entrada da fila de conclusão DW0.
CQEntryDW1
Entrada da fila de conclusão DW1.
Specific[8]
SQHD
Ponteiro de cabeçalho SQ na entrada da fila de conclusão.
SQID
Identificador SQ.
Requisitos
Requisito | Valor |
---|---|
Servidor mínimo com suporte | Windows Server 2022 |
Cabeçalho | srb.h |