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_FLAG のSRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADYフラグを設定する必要があります。

CommandPRP2

NVMe コマンド内の PRP エントリ 2 ( NVMe 仕様を参照)。 PRP 情報が存在することを示すには、ユーザーは SRBEX_DATA_NVME_COMMAND_FLAG のSRBEX_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

nvme.h でNVMEOF_FABRICS_COMMAND

FabricsCommand.OPC

オペコード (7Fh)。

FabricsCommand.PSDT

データ転送用の PRP または SGL。 (ビット 7:6 のみが使用され、残りは予約されています)。

FabricsCommand.CID

Fabrics コマンド識別子。

FabricsCommand.FCTYPE

Fabrics コマンドの種類。

FabricsCommand.Reserved[35]

FabricsCommand.Specific[24]

Command

コマンド DW0 を参照するには ( NVMe の仕様を参照してください)。

Command.OPC

オペコード (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 データ NVMe コマンドのプロパティを指定するSRBEX_DATA_NVME_COMMAND_FLAG値。

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

ユーザー指定のキュー ID ( NVMe の仕様を参照)。 指定しない場合は、この値を 0xFFFFFFFF に設定します。

CommandTag

特定のコマンドをマークするコマンド識別子の一意のユーザー指定識別子。 ユーザーは CommandTag を使用して、Windows イベント トレース (ETW) トレース (たとえば、イベント ビューアーのストレージ ログ) でコマンドの結果をトレースできます。

CQEntryDW0

完了キュー エントリ DW0。

CQEntryDW1

完了キュー エントリ DW1。

Specific[8]

SQHD

完了キュー エントリ内の SQ ヘッド ポインター。

SQID

SQ 識別子。

要件

要件
サポートされている最小のサーバー Windows Server 2022
Header srb.h

こちらもご覧ください