StorNVMe 命令集支持

下表列出了 NVMe 管理员命令集的 NVM Express 规范中定义的命令和操作码,以及 (基本规范) 的所有 I/O 命令、NVM 命令集的 I/O 命令以及分区命名空间命令集的 I/O 命令。 这些表包含以下信息:

  • 标头定义 – 指示命令的枚举是在相关的 Windows 头文件中定义的。
  • StorNVMe 支持 – 指示 StorNVMe 设备驱动程序在 Windows 10 版本 1903 及更高版本上支持该命令。
  • 驱动程序 Int Use (驱动程序内部使用) – 指示 StorNVMe 驱动程序可以在内部生成/发出命令。
  • 注释 - 任何其他相关信息;例如,命令是否可以作为 IOCTL 操作的一部分发出。 “仅 WinPE”表示该命令仅在 Windows 的 WinPE 版本上受支持。

管理员命令

操作码 NVMe 管理员 命令 标头定义 StorNVMe 支持 驱动程序 Int Use 注释
0h 删除 I/O 提交队列
1h 创建 I/O 提交队列
2 小时 获取日志页 IOCTL_STORAGE_QUERY_PROPERTY
4h 删除 I/O 完成队列
5h 创建 I/O 完成队列
6h 识别 IOCTL_STORAGE_QUERY_PROPERTYIOCTL_STORAGE_FIRMWARE_GET_INFO
8h 中止
9h 设置功能 IOCTL_STORAGE_SET_PROPERTY。 目前仅支持主机控制的热管理。
获取功能 IOCTL_STORAGE_QUERY_PROPERTY
Ch 异步事件请求
Dh 命名空间管理 仅限 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND
10h 固件提交 (以前固件激活) IOCTL_STORAGE_FIRMWARE_ACTIVATE
11h 固件映像下载 IOCTL_STORAGE_FIRMWARE_DOWNLOAD
14h 设备 Self-Test IOCTL_STORAGE_PROTOCOL_COMMAND
15h 命名空间附件 仅限 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND
18h 保持活动状态
19h 指令发送
1Ah 指令接收
1Ch 虚拟化管理
1Dh NVMe-MI 发送 仅限 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND
1Eh NVMe-MI 接收 仅限 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND
20h 容量管理
24h 锁定
7Ch 门铃缓冲区配置
7Fh 构造命令
80h 格式化 NVM 仅适用于 WinPE 的IOCTL_STORAGE_PROTOCOL_COMMANDSCSIOP_SANITIZE 的IOCTL_SCSI_PASS_THROUGH。 仅适用于加密擦除的IOCTL_STORAGE_REINITIALIZE_MEDIA
81h 安全发送 SCSIOP_SECURITY_PROTOCOL_OUT IOCTL_SCSI_PASS_THROUGH
82h 安全接收 SCSIOP_SECURITY_PROTOCOL_IN 的IOCTL_SCSI_PASS_THROUGH
84h 消毒 IOCTL_STORAGE_PROTOCOL_COMMAND。 从 Windows 10 版本 2004/ 2020 年 5 月更新起,Windows Server 版本 2004 (Server Core) 。 WinPE 仅在 Windows 11、Windows Server 2022 之前,并且仅当用户使用 IOCTL_STORAGE_PROTOCOL_COMMAND。
86h 获取 LBA 状态 从 Windows 11 起,Windows Server 2022
C0h-FFh 供应商特定 不可用 IOCTL_STORAGE_PROTOCOL_COMMAND。 对于每个特定于供应商的命令操作码,特定于供应商的传递命令要求在相应的命令支持和效果日志页中要求 CSUPP=1。

I/O 命令

除上述内容外,下表还包括 NVM Express I/O 命令的以下信息:

  • NVMe 规范:指示定义 I/O 命令的 NVM Express 规范:
    • A = 所有 I/O 命令集,NVM Express 基本规范 2.0a,2021 年 7 月 23 日
    • N = NVM 命令集,NVM Express NVM 命令集规范 1.0a,2021 年 7 月 23 日
    • Z = 分区命名空间命令集 I/O 命令,分区命名空间命令集规范 1.1a,2021 年 7 月 23 日
操作码 NVMe I/O 命令 标头定义 StorNVMe 支持 驱动程序 Int Use NVMe 规范 注释
0h 刷新 A、N、Z IOCTL_SCSI_PASS_THROUGH的 SCSIOP_SYNCHRONIZE_CACHE
1h 写入 N、Z IOCTL_SCSI_PASS_THROUGH 的SCSIOP_WRITE/ SCSIOP_WRITE16
2 小时 读取 N,Z IOCTL_SCSI_PASS_THROUGH 的 SCSIOP_READ/SCSIOP_READ16
4h 写入不可更正 N,Z
5h Compare N,Z 仅限 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND
8h 写入零 N,Z
9h 数据集管理 N,Z 只有 TRIM (Deallocate) 。 IOCTL_SCSI_PASS_THROUGH SCSIOP_UNMAP
Ch 验证 N,Z
Dh 预留寄存器 A、N、Z 从 Windows 11 Windows Server 2022。
预留报表 A、N、Z 从 Windows 11 Windows Server 2022。
11h 预留获取 A、N、Z 从 Windows 11 Windows Server 2022。
15h 预留版本 A、N、Z 从 Windows 11 Windows Server 2022。
19h 复制 N,Z 从 Windows 11 Windows Server 2022。 保留供 Microsoft 内部使用。
79h 区域管理发送 Z 从 Windows 11 Windows Server 2022。 保留供 Microsoft 内部使用。
7Ah 区域管理接收 Z 从 Windows 11 Windows Server 2022。 保留供 Microsoft 内部使用。
7Dh 区域追加 Z 从 Windows 11 Windows Server 2022。 保留供 Microsoft 内部使用。
80h-FFh 供应商特定 不可用 A、N、Z IOCTL_STORAGE_PROTOCOL_COMMAND。 特定于供应商的直通命令要求每个特定于供应商的命令操作码在相应的命令支持和效果日志页中要求 CSUPP=1。

可能还会更改。 有关其他信息,请参阅 使用 NVMe 驱动器