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时,控制器不会处理命令,也不会将 完成队列条目 发布到完成队列。

当此字段从 10转换为 时,控制器重置 (称为控制器重置) 。 重置会删除所有 I/O 提交队列和 I/O 完成队列,重置管理员提交队列和完成队列,并将硬件置于空闲状态。 重置不会影响 PCI Express 寄存器或管理员队列寄存器 (AQA、ASQ 或 ACQ) 。 所有其他控制器寄存器和内部控制器状态 (例如,跨电源状态) 不永久的功能值将重置为其默认值。 控制器确保在重置操作之前已将相应的完成队列条目发布到 I/O 完成队列的命令不会丢失数据。

将此字段清除为 0时,控制器在准备好重新启用控制器后,控制器将清除0控制器状态中的“就绪 (RDY) ”字段的值。 当此字段设置为 1时,控制器将控制器状态中的 RDY 字段的值设置为1当它准备好处理命令时。 在准备好访问命名空间 () 之前,RDY 可以设置为 1

RDY 为 时,将此字段从 0 设置为 11或者在 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。

主机软件设置的值必须是受支持的值,如控制器功能的MPSMAXMPSMIN 字段所指示。 此字段描述用于 PRP 条目大小的值。

只有在 将 EN 清除为 0时,才能修改此字段。

DUMMYSTRUCTNAME.AMS

指定要使用的仲裁机制。

只有在 将 EN 清除为 0时,才能修改此字段。

主机软件只能将此字段设置为支持的仲裁机制,如控制器功能的AMS 字段所示。 如果此字段设置为不受支持的值,则行为未定义。

DUMMYSTRUCTNAME.SHN

指定一个 NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS 值,该值用于在发生关闭时启动关闭处理。 例如,当需要关机条件时。

对于正常关闭通知,预期控制器有时间处理关闭通知。 对于突然关闭通知,主机可能不会等待关闭处理完成,然后断电。 在发生任何关机条件之前,在 PCI 电源管理状态发生任何更改之前,主机软件应写入此字段。 建议在热重启之前将此字段写入 。

若要确定关闭处理何时完成,请参阅控制器状态中的 SHST 值。

DUMMYSTRUCTNAME.IOSQES

指定用于所选 I/O 命令集的 I/O 提交队列条目大小。

此字段的必需值和最大值在 SQES 中指定 。RequiredEntrySizeSQES。 每个 I/O 命令集的 标识控制器 数据结构的 MaxEntrySize 字段。 该值以字节为单位,指定为 2 (2^n) 的幂。

DUMMYSTRUCTNAME.IOCQES

指定用于所选 I/O 命令集的 I/O 完成队列条目大小。

此字段的必需值和最大值在 CQES 中指定。RequiredEntrySizeCQES。 每个 I/O 命令集的 标识控制器 数据结构的 MaxEntrySize 字段。 该值以字节为单位,指定为 2 (2^n) 的幂。

DUMMYSTRUCTNAME.Reserved1

AsUlong

要求

要求
最低受支持的客户端 Windows 10
标头 nvme.h