Bagikan melalui


struktur SRBEX_DATA_NVME_COMMAND (srb.h)

Struktur SRBEX_DATA_NVME_COMMAND memungkinkan pengguna untuk membingkai dan mengeluarkan perintah dalam format NVMe. Struktur ini saat ini dicadangkan untuk penggunaan sistem.

Sintaks

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;

Anggota

Type

Jenis perintah. Saat ini ini harus diatur ke SrbExDataTypeNvmeCommand.

Length

Ukuran struktur ini, dalam byte.

ControllerHandle

Handel Miniport untuk pengontrol NVMe.

Reserved0

Dipesan; jangan gunakan.

CommandDWORD0

Perintah Dword 0 dalam perintah NVMe (lihat spesifikasi NVMe).

CommandNSID

Pengidentifikasi namespace dalam perintah NVMe (lihat spesifikasi NVMe).

Reserved1[2]

CommandMPTR

Penunjuk metadata dalam perintah NVMe (lihat spesifikasi NVMe).

CommandPRP1

Halaman wilayah fisik (PRP) Entri 1 dalam perintah NVMe (lihat spesifikasi NVMe). Untuk menunjukkan bahwa informasi PRP ada, pengguna harus mengatur bendera SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADYSRBEX_DATA_NVME_COMMAND_FLAG.

CommandPRP2

Entri PRP 2 dalam perintah NVMe (lihat spesifikasi NVMe). Untuk menunjukkan bahwa informasi PRP ada, pengguna harus mengatur bendera SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADYSRBEX_DATA_NVME_COMMAND_FLAG.

CommandSGL1[2]

CommandCDW10

Dword 10 khusus perintah (lihat spesifikasi NVMe).

CommandCDW11

Dword 11 khusus perintah (lihat spesifikasi NVMe).

CommandCDW12

Dword 12 khusus perintah (lihat spesifikasi NVMe).

CommandCDW13

Dword 13 khusus perintah (lihat spesifikasi NVMe).

CommandCDW14

Dword 14 khusus perintah (lihat spesifikasi NVMe).

CommandCDW15

Dword 15 khusus perintah (lihat spesifikasi NVMe).

FabricsCommand

NVMEOF_FABRICS_COMMAND dalam nvme.h

FabricsCommand.OPC

Opcode (7Fh).

FabricsCommand.PSDT

PRP atau SGL untuk transfer data. (hanya bit 7:6 yang digunakan, sisanya dicadangkan).

FabricsCommand.CID

Pengidentifikasi perintah Fabrics.

FabricsCommand.FCTYPE

Jenis perintah Fabrics.

FabricsCommand.Reserved[35]

FabricsCommand.Specific[24]

Command

Untuk mereferensikan perintah DW0 (lihat spesifikasi NVMe).

Command.OPC

Opcode (OPC).

Command.FUSE

Fused Operation (FUSE).

Command.Reserved

Dipesan; jangan gunakan.

Command.PSDT

PRP atau SGL untuk transfer data.

Command.CID

Pengidentifikasi perintah.

Command.TypeSpecific[60]

CommandType

Nilai SRBEX_DATA_NVME_COMMAND_TYPE yang menentukan jenis perintah NVMe.

Reserved2

Dipesan; jangan gunakan.

CommandFlags

Nilai SRBEX_DATA_NVME_COMMAND_FLAG yang menentukan properti perintah NVMe data SRBEX ini.

ResponseFlags

Ditentukan dalam SRBEX_DATA_NVME_RESPONSE_FLAG.

CommandStatus

Bidang status dari entri Antrean Penyelesaian (lihat spesifikasi NVMe).

CommandStatus.DUMMYSTRUCTNAME

Struktur tersemat.

CommandStatus.DUMMYSTRUCTNAME.P

Tag fase (P).

CommandStatus.DUMMYSTRUCTNAME.SC

Kode status (SC).

CommandStatus.DUMMYSTRUCTNAME.SCT

Jenis kode status (SCT).

CommandStatus.DUMMYSTRUCTNAME.CRD

Penundaan coba lagi perintah (CRD).

CommandStatus.DUMMYSTRUCTNAME.M

Lainnya (M).

CommandStatus.DUMMYSTRUCTNAME.DNR

Jangan coba lagi (DNR).

CommandStatus.AsUshort

QID

ID antrean yang ditentukan pengguna (lihat spesifikasi NVMe). Jika tidak ditentukan, atur nilai ini ke 0xFFFFFFFF.

CommandTag

Pengidentifikasi unik yang ditentukan pengguna untuk pengidentifikasi perintah untuk menandai perintah tertentu. Pengguna dapat menggunakan CommandTag untuk melacak hasil perintah dalam pelacakan Peristiwa untuk Windows (ETW) (misalnya, di log Penyimpanan Pemantau Peristiwa).

CQEntryDW0

Entri antrean penyelesaian DW0.

CQEntryDW1

Entri antrean penyelesaian DW1.

Specific[8]

SQHD

Penunjuk kepala SQ dalam entri antrean penyelesaian.

SQID

Pengidentifikasi SQ.

Persyaratan

Persyaratan Nilai
Server minimum yang didukung Windows Server 2022
Header srb.h

Lihat juga