Condividi tramite


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 per l'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;

Members

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

Riservati; 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

Riservati; 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

Riservati; 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 dalla 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 tentativi comando (CRD).

CommandStatus.DUMMYSTRUCTNAME.M

Altro (M).

CommandStatus.DUMMYSTRUCTNAME.DNR

Non ripetere i tentativi (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 di 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.

Requisiti

Requisito Valore
Server minimo supportato Windows Server 2022
Intestazione srb.h

Vedi anche