共用方式為


SRBEX_DATA_NVME_COMMAND結構 (srb.h)

SRBEX_DATA_NVME_COMMAND 結構可讓使用者以 NVMe 格式框架併發出命令。 此結構目前保留供系統使用。

語法

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;

成員

Type

命令類型。 目前,這必須設定為 SrbExDataTypeNvmeCommand

Length

這個結構的大小,以位元組為單位。

ControllerHandle

NVMe 控制器的迷你埠控點。

Reserved0

保留;請勿使用 。

CommandDWORD0

NVMe 命令內的命令 Dword 0 (請參閱 NVMe 規格)。

CommandNSID

NVMe 命令內的命名空間識別碼(請參閱 NVMe 規格)。

Reserved1[2]

CommandMPTR

NVMe 命令內的元數據指標(請參閱 NVMe 規格)。

CommandPRP1

NVMe 命令內的實體區域頁面 (PRP) 專案 1 (請參閱 NVMe 規格)。 若要指出PRP資訊存在,用戶必須設定 SRBEX_DATA_NVME_COMMAND_FLAGSRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY 旗標。

CommandPRP2

NVMe 命令內的 PRP 專案 2 (請參閱 NVMe 規格)。 若要指出PRP資訊存在,用戶必須設定 SRBEX_DATA_NVME_COMMAND_FLAGSRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY 旗標。

CommandSGL1[2]

CommandCDW10

命令特定的 Dword 10 (請參閱 NVMe 規格)。

CommandCDW11

命令特定的 Dword 11 (請參閱 NVMe 規格)。

CommandCDW12

命令特定的 Dword 12 (請參閱 NVMe 規格)。

CommandCDW13

命令特定的 Dword 13 (請參閱 NVMe 規格)。

CommandCDW14

命令特定的 Dword 14 (請參閱 NVMe 規格)。

CommandCDW15

命令特定的 Dword 15 (請參閱 NVMe 規格)。

FabricsCommand

NVMEOF_FABRICS_COMMAND nvme.h

FabricsCommand.OPC

Opcode (7Fh) 。

FabricsCommand.PSDT

用於數據傳輸的 PRP 或 SGL。 (只使用位 7:6,其餘則保留)。

FabricsCommand.CID

網狀架構命令標識碼。

FabricsCommand.FCTYPE

網狀架構命令類型。

FabricsCommand.Reserved[35]

FabricsCommand.Specific[24]

Command

若要參考命令 DW0 (請參閱 NVMe 規格)。

Command.OPC

Opcode (OPC)。

Command.FUSE

融合運算(FUSE)。

Command.Reserved

保留;請勿使用 。

Command.PSDT

用於數據傳輸的 PRP 或 SGL。

Command.CID

命令標識碼。

Command.TypeSpecific[60]

CommandType

指定 NVMe 命令類型的 SRBEX_DATA_NVME_COMMAND_TYPE 值。

Reserved2

保留;請勿使用 。

CommandFlags

SRBEX_DATA_NVME_COMMAND_FLAG 值,指定此 SRBEX 數據 NVMe 命令的屬性。

ResponseFlags

定義於 SRBEX_DATA_NVME_RESPONSE_FLAG中。

CommandStatus

完成佇列專案的狀態欄位(請參閱 NVMe 規格)。

CommandStatus.DUMMYSTRUCTNAME

內嵌結構。

CommandStatus.DUMMYSTRUCTNAME.P

階段標記 (P)。

CommandStatus.DUMMYSTRUCTNAME.SC

狀態代碼 (SC)。

CommandStatus.DUMMYSTRUCTNAME.SCT

狀態代碼類型 (SCT)。

CommandStatus.DUMMYSTRUCTNAME.CRD

命令重試延遲 (CRD)。

CommandStatus.DUMMYSTRUCTNAME.M

更多(M)。

CommandStatus.DUMMYSTRUCTNAME.DNR

請勿重試 (DNR)。

CommandStatus.AsUshort

QID

使用者指定的佇列識別碼(請參閱 NVMe 規格)。 如果未指定,請將此值設定為 0xFFFFFFFF。

CommandTag

要標示特定命令之命令標識碼的唯一使用者指定識別碼。 使用者可以使用 CommandTag 來追蹤 Windows 事件追蹤中命令的結果(例如,在事件查看器的記憶體記錄檔中)。

CQEntryDW0

完成佇列專案 DW0。

CQEntryDW1

完成佇列專案 DW1。

Specific[8]

SQHD

完成佇列專案中的 SQ 前端指標。

SQID

SQ 識別碼。

要求

要求 價值
支援的最低伺服器 Windows Server 2022
標頭 srb.h

另請參閱