次の方法で共有


NVME_CONTROLLER_MEMORY_BUFFER_SIZE union (nvme.h)

オプションのコントローラー メモリ バッファー レジスタのサイズを定義し、NVME_CONTROLLER_REGISTERS構造体の CMBSZ フィールドで使用します。

コントローラーがコントローラー メモリ バッファー機能をサポートしていない場合、 CMBSZ フィールドは に 0hクリアされます。

コントローラー メモリ バッファーの場所は、NVME_CONTROLLER_REGISTERSCMBLOC フィールドで指定します。

構文

typedef union {
  struct {
    ULONG SQS : 1;
    ULONG CQS : 1;
    ULONG LISTS : 1;
    ULONG RDS : 1;
    ULONG WDS : 1;
    ULONG Reserved : 3;
    ULONG SZU : 4;
    ULONG SZ : 20;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_CONTROLLER_MEMORY_BUFFER_SIZE, *PNVME_CONTROLLER_MEMORY_BUFFER_SIZE;

メンバー

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.SQS

コントローラーがコントローラー メモリ バッファー内の 管理 および I/O 送信キューをサポートしているかどうかを示します。

この値が に1設定されている場合、コントローラーはコントローラー メモリ バッファー内の 管理 および I/O 送信キューをサポートします。 この値が に 0クリアされると、すべての送信キューがホスト メモリに配置されます。

DUMMYSTRUCTNAME.CQS

コントローラーがコントローラー メモリ バッファー内の管理キューと I/O 完了キューをサポートしているかどうかを示します。

この値が に1設定されている場合、コントローラーはコントローラー メモリ バッファー内の 管理 および I/O 完了キューをサポートします。 この値が に 0クリアされると、すべての完了キューがホスト メモリに配置されます。

DUMMYSTRUCTNAME.LISTS

コントローラーがコントローラー メモリ バッファーの物理領域ページ (PRP) と散布図Lists (SGL) をサポートしているかどうかを示します。

この値が に1設定されている場合、コントローラーはコントローラー メモリ バッファーで PRP Listsをサポートします。 値が に 1 設定されていて、コントローラーで SGL がサポートされている場合、コントローラーはコントローラー メモリ バッファー内の SGL をサポートします。 このビットが に 1設定されている場合、送信キュー サポート (SQS) フィールドは に 1設定されます。

この値を に0クリアすると、すべての PRP Listsと SGL がホスト メモリに配置されます。

DUMMYSTRUCTNAME.RDS

コントローラーからホストにデータを転送するコマンド (Read コマンドなど) に対して、コントローラーがコントローラー メモリ バッファー内のデータとメタデータをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーはコントローラーからホストにデータを転送するコマンドに対して、コントローラー メモリ バッファー内のデータとメタデータをサポートします。

この値を にクリアすると、コントローラーからホストに 0データを転送するコマンドのすべてのデータとメタデータがホスト メモリに転送されます。

DUMMYSTRUCTNAME.WDS

ホストからコントローラーにデータを転送するコマンド (Write コマンドなど) に対して、コントローラーがコントローラー メモリ バッファー内のデータとメタデータをサポートしているかどうかを示します。

この値が に 1設定されている場合、コントローラーは、ホストからコントローラーにデータを転送するコマンドに対して、コントローラー メモリ バッファー内のデータとメタデータをサポートします。

この値が にクリアされると、ホストからコントローラーに 0データを転送するコマンドのすべてのデータとメタデータがホスト メモリから転送されます。

DUMMYSTRUCTNAME.Reserved

DUMMYSTRUCTNAME.SZU

[サイズ SZ] フィールドの粒度を示すNVME_CMBSZ_SIZE_UNITS値。

DUMMYSTRUCTNAME.SZ

ホストで使用できるコントローラー メモリ バッファーのサイズを示します。 サイズは、サイズ ユニット SZU の倍数です。

Offset (NVME_CONTROLLER_MEMORY_BUFFER_LOCATION 構造体の OFST フィールド) + Size (SZ) が、指定したベース アドレス レジスタ (NVME_CONTROLLER_MEMORY_BUFFER_LOCATION 構造体の BIR フィールド) の長さを超える場合、ホストで使用できるサイズはベース アドレス レジスタの長さによって制限されます。

AsUlong

要件

要件
サポートされている最小のクライアント Windows 10
Header nvme.h

こちらもご覧ください