NVME_CONTROLLER_CONFIGURATION union (nvme.h)
包含控制器的读/写配置设置。
在启用控制器之前,主机软件通过将 “启用 EN ”字段值设置为 ,将以下字段设置为 1
有效值:
此结构用于NVME_CONTROLLER_REGISTERS结构的控制器功能 (CC) 字段中。
语法
typedef union {
struct {
ULONG EN : 1;
ULONG Reserved0 : 3;
ULONG CSS : 3;
ULONG MPS : 4;
ULONG AMS : 3;
ULONG SHN : 2;
ULONG IOSQES : 4;
ULONG IOCQES : 4;
ULONG Reserved1 : 8;
} DUMMYSTRUCTNAME;
ULONG AsUlong;
} NVME_CONTROLLER_CONFIGURATION, *PNVME_CONTROLLER_CONFIGURATION;
成员
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.EN
指示是否启用控制器来处理命令。
当此值设置为 1
时,控制器将根据 提交队列 Tail Doorbell 写入来处理命令。
将此值清除为 0
时,控制器不会处理命令,也不会将 完成队列条目 发布到完成队列。
当此字段从 1
0
转换为 时,控制器重置 (称为控制器重置) 。 重置会删除所有 I/O 提交队列和 I/O 完成队列,重置管理员提交队列和完成队列,并将硬件置于空闲状态。 重置不会影响 PCI Express 寄存器或管理员队列寄存器 (AQA、ASQ 或 ACQ) 。 所有其他控制器寄存器和内部控制器状态 (例如,跨电源状态) 不永久的功能值将重置为其默认值。 控制器确保在重置操作之前已将相应的完成队列条目发布到 I/O 完成队列的命令不会丢失数据。
将此字段清除为 0
时,控制器在准备好重新启用控制器后,控制器将清除0
控制器状态中的“就绪 (RDY) ”字段的值。 当此字段设置为 1
时,控制器将控制器状态中的 RDY 字段的值设置为1
当它准备好处理命令时。 在准备好访问命名空间 () 之前,RDY 可以设置为 1
。
当 RDY 为 时,将此字段从 0
设置为 1
,1
或者在 RDY 为“0”时将此字段从“1”设置为“0”,具有未定义的结果。 只有在将 EN 清除为 0
时,才会修改 (AQA、ASQ 和 ACQ) 的管理员队列注册。
DUMMYSTRUCTNAME.Reserved0
DUMMYSTRUCTNAME.CSS
指定选择用于 I/O 提交队列的 I/O 命令集。
主机软件将仅选择受支持的 I/O 命令集,如控制器功能的CSS 字段中所示。
只有在禁用控制器时,才能更改此字段的此值, ( 将 EN 字段清除为 0
) 。 所选 I/O 命令集将用于所有 I/O 提交队列。
DUMMYSTRUCTNAME.MPS
指示主机内存页大小。 内存页大小为 (2 ^ (12 + MPS))
。 因此,最小主机内存页大小为 4KB,最大主机内存页大小为 128MB。
主机软件设置的值必须是受支持的值,如控制器功能的MPSMAX 和 MPSMIN 字段所指示。 此字段描述用于 PRP 条目大小的值。
只有在 将 EN 清除为 0
时,才能修改此字段。
DUMMYSTRUCTNAME.AMS
指定要使用的仲裁机制。
只有在 将 EN 清除为 0
时,才能修改此字段。
主机软件只能将此字段设置为支持的仲裁机制,如控制器功能的AMS 字段所示。 如果此字段设置为不受支持的值,则行为未定义。
DUMMYSTRUCTNAME.SHN
指定一个 NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS 值,该值用于在发生关闭时启动关闭处理。 例如,当需要关机条件时。
对于正常关闭通知,预期控制器有时间处理关闭通知。 对于突然关闭通知,主机可能不会等待关闭处理完成,然后断电。 在发生任何关机条件之前,在 PCI 电源管理状态发生任何更改之前,主机软件应写入此字段。 建议在热重启之前将此字段写入 。
若要确定关闭处理何时完成,请参阅控制器状态中的 SHST 值。
DUMMYSTRUCTNAME.IOSQES
指定用于所选 I/O 命令集的 I/O 提交队列条目大小。
此字段的必需值和最大值在 SQES 中指定 。RequiredEntrySize 和 SQES。 每个 I/O 命令集的 标识控制器 数据结构的 MaxEntrySize 字段。 该值以字节为单位,指定为 2 (2^n) 的幂。
DUMMYSTRUCTNAME.IOCQES
指定用于所选 I/O 命令集的 I/O 完成队列条目大小。
此字段的必需值和最大值在 CQES 中指定。RequiredEntrySize 和 CQES。 每个 I/O 命令集的 标识控制器 数据结构的 MaxEntrySize 字段。 该值以字节为单位,指定为 2 (2^n) 的幂。
DUMMYSTRUCTNAME.Reserved1
AsUlong
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 |
标头 | nvme.h |