NVME_CONTROLLER_CONFIGURATION union (nvme.h)

包含控制器的读/写配置设置。

主机软件通过将 “启用 EN 字段值”设置为 1“启用 EN”字段值,将以下字段设置为启用控制器之前的有效值:

此结构用于NVME_CONTROLLER_REGISTERS结构的控制器功能(CC)字段中。

Syntax

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;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.EN

指示是否启用控制器来处理命令。

如果此值设置为 1,控制器将基于 提交队列 Tail Doorbell 写入处理命令。 清除此值 0后,控制器将不会处理命令,也不会将 完成队列条目发布到完成队列

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

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

将此字段从 0RDY 设置为 1 RDY 时,或者当 RDY1为“0”时将此字段从“1”设置为“0”,则此字段具有未定义的结果。 仅当清除 0EN 时,才会修改管理员队列注册(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^n) 的幂。

DUMMYSTRUCTNAME.IOCQES

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

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

DUMMYSTRUCTNAME.Reserved1

AsUlong

要求

Requirement 价值
最低支持的客户端 Windows 10操作系统
Header nvme.h