Partilhar via


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

Confira também