包含指定用于托管软件的控制器的基本功能的只读值。
此结构用于NVME_CONTROLLER_REGISTERS结构的控制器功能(CAP)字段中。
Syntax
typedef union {
struct {
ULONGLONG MQES : 16;
ULONGLONG CQR : 1;
ULONGLONG AMS_WeightedRoundRobinWithUrgent : 1;
ULONGLONG AMS_VendorSpecific : 1;
ULONGLONG Reserved0 : 5;
ULONGLONG TO : 8;
ULONGLONG DSTRD : 4;
ULONGLONG NSSRS : 1;
ULONGLONG CSS_NVM : 1;
ULONGLONG CSS_Reserved0 : 1;
ULONGLONG CSS_Reserved1 : 1;
ULONGLONG CSS_Reserved2 : 1;
ULONGLONG CSS_Reserved3 : 1;
ULONGLONG CSS_Reserved4 : 1;
ULONGLONG CSS_MultipleIo : 1;
ULONGLONG CSS_AdminOnly : 1;
ULONGLONG Reserved2 : 3;
ULONGLONG MPSMIN : 4;
ULONGLONG MPSMAX : 4;
ULONGLONG Reserved3 : 8;
} DUMMYSTRUCTNAME;
ULONGLONG AsUlonglong;
} NVME_CONTROLLER_CAPABILITIES, *PNVME_CONTROLLER_CAPABILITIES;
Members
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.MQES
指示控制器支持的最大单个队列大小。
此值适用于主机软件创建的每个 I/O 提交队列和 I/O 完成队列。
这是一个基于 0 的值。 最小值为 1h指示两个队列条目。
DUMMYSTRUCTNAME.CQR
指示控制器是否需要 I/O 提交队列和 I/O 完成队列以物理方式连续。
如果此字段设置为 1,控制器要求 I/O 提交队列和 I/O 完成队列在物理上是连续的。
清除此字段 0后,控制器支持非物理连续的 I/O 提交队列和 I/O 完成队列。
当此字段设置为1时,“创建 I/O 提交队列”和“创建 I/O 完成队列”命令中的“物理连续位”(PC 字段)设置为1。
DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent
指示控制器是否支持具有紧急优先级类仲裁机制的加权轮循机制。
如果此字段设置为 1,则支持具有紧急优先级类仲裁机制的加权轮循机制。
此 AMS_WeightedRoundRobinWithUrgent 和 AMS_VendorSpecific 字段指示控制器支持的可选仲裁机制。 轮循机制未列出,因为所有控制者都必须支持此仲裁机制。
DUMMYSTRUCTNAME.AMS_VendorSpecific
指示控制器是否支持供应商特定的仲裁机制。
如果此字段设置为 1,则支持供应商特定的仲裁机制。
DUMMYSTRUCTNAME.Reserved0
保留字段(位 19 到 23)。
DUMMYSTRUCTNAME.TO
指示主机软件将等待控制器状态中的“就绪”值(RDY)值从以下情况转换的最坏情况时间:
-
0在1NVME_CONTROLLER_CONFIGURATION转换0到1;或 -
1NVME_CONTROLLER_CONFIGURATION0中的 EN 值从转换1到 。0
在突然关闭或激活新固件映像等事件后,可能会遇到这种最糟糕的情况。 典型时间预计要短得多。
此字段的值以 500 毫秒为单位。
DUMMYSTRUCTNAME.DSTRD
指示门铃寄存器之间的 步幅 。
每个 提交队列 和 完成队列 Doorbell 寄存器的大小为 32 位。 步幅指定为 (2 ^ (2 + DSTRD)) 字节。
0h值表示 4 个字节的步幅,其中门铃寄存器在每一个寄存器之间没有保留空间进行打包。
DUMMYSTRUCTNAME.NSSRS
指示控制器是否支持 在NVME_NVM_SUBSYSTEM_RESET 结构中定义的 NVM 子系统重置功能。
当此字段设置为 1时,控制器支持 NVM 子系统重置功能。
清除此字段后 0,控制器不支持 NVM 子系统重置功能。
DUMMYSTRUCTNAME.CSS_NVM
此字段指示控制器是否支持 NVM 命令集。 必须至少支持一个命令集。
如果此字段设置为 1,则支持 NVM 命令集。
如果这些字段之一的值设置为1CSS_Reserved6字段,则为其他 I/O 命令集保留CSS_Reserved0,则支持相应的 I/O 命令集。
DUMMYSTRUCTNAME.CSS_Reserved0
DUMMYSTRUCTNAME.CSS_Reserved1
DUMMYSTRUCTNAME.CSS_Reserved2
DUMMYSTRUCTNAME.CSS_Reserved3
DUMMYSTRUCTNAME.CSS_Reserved4
DUMMYSTRUCTNAME.CSS_MultipleIo
DUMMYSTRUCTNAME.CSS_AdminOnly
DUMMYSTRUCTNAME.Reserved2
DUMMYSTRUCTNAME.MPSMIN
指示控制器支持的最小主机内存页大小。
最小内存页大小为 (2 ^ (12 + MPSMIN))。
主机不会在小于此值的 MPS 字段中配置内存页大小NVME_CONTROLLER_CONFIGURATION。
DUMMYSTRUCTNAME.MPSMAX
指示控制器支持的最大主机内存页大小。
最大内存页大小为 (2 ^ (12 + MPSMAX))。
主机不会在大于此值NVME_CONTROLLER_CONFIGURATION的 MPS 字段中配置内存页大小。
DUMMYSTRUCTNAME.Reserved3
AsUlonglong
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 10操作系统 |
| Header | nvme.h |