共用方式為


NVME_CONTROLLER_MEMORY_BUFFER_SIZE聯盟 (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;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.SQS

指出控制器是否支援控制器記憶體緩衝區中的管理及 I/O 提交佇列。

當此值設定為 1時,控制器支援控制器記憶體緩衝區中的管理及 I/O 提交佇列。 當此值清除為 0時,所有提交佇列都會放置在主機記憶體中。

DUMMYSTRUCTNAME.CQS

指出控制器是否支援控制器記憶體緩衝區中的管理及 I/O 完成佇列。

當此值設定為 1時,控制器支援控制器記憶體緩衝區中的管理及 I/O 完成佇列。 當清除此值 0時,所有完成佇列都會放置在主機記憶體中。

DUMMYSTRUCTNAME.LISTS

指出控制器是否支援控制器記憶體緩衝區中的實體區域頁面 (PRP) 和分散收集清單 (SGL)。

當此值設定為 1時,控制器支援控制器記憶體緩衝區中的 PRP 清單。 如果此值設定為 1 ,且控制器支援 SGL、則控制器會支援控制器記憶體緩衝區中的 SGL。 如果此位元設為 1,則「提交佇列支援 (SQS)」欄位將設為 1

當清除此值 0時,所有PRP清單和SGL都將放置在主機記憶體中。

DUMMYSTRUCTNAME.RDS

指出控制器是否支援控制器記憶體緩衝區中的資料和中繼資料,以用於將資料從控制器傳輸至主機的命令,例如讀取命令。

當此值設定為 1時,控制器會支援控制器記憶體緩衝區中的資料和中繼資料,以將資料從控制器傳輸到主機的命令。

當清除此值 0時,將資料從控制器傳輸至主機的指令的所有資料和中繼資料都會傳輸至主機記憶體。

DUMMYSTRUCTNAME.WDS

指出控制器是否支援控制器記憶體緩衝區中的資料和中繼資料,以用於將資料從主機傳輸至控制器的命令,例如「寫入」命令。

當此值設定為 1時,控制器會支援控制器記憶體緩衝區中的資料和中繼資料,以將資料從主機傳輸至控制器的命令。

當清除此值 0時,將資料從主機傳輸至控制器的指令的所有資料和中繼資料都會從主機記憶體傳輸。

DUMMYSTRUCTNAME.Reserved

DUMMYSTRUCTNAME.SZU

指出 大小 SZ 欄位的精細度的NVME_CMBSZ_SIZE_UNITS值。

DUMMYSTRUCTNAME.SZ

指出可供主機使用的控制器記憶體緩衝區大小。 尺寸是尺寸單位 SZU 的倍數。

如果「偏移」(NVME_CONTROLLER_MEMORY_BUFFER_LOCATION結構中的 OFST 欄位) + 大小 (SZ) 超出指定的「基本位址暫存器」(NVME_CONTROLLER_MEMORY_BUFFER_LOCATION結構中的 BIR 欄位)的長度,則主機可用的大小會受到「基本位址暫存器」長度的限制。

AsUlong

需求

Requirement 價值觀
最低支援的用戶端 Windows 10
Header nvme.h

另請參閱