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

Consulte también