StorNVMe 命令集支持
本文列表中的表:
- NVMe 管理员命令集的 NVM Express 规范中定义的命令和操作码。
- NVM 命令集的所有 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 提交队列 | 是 | 是 | 是 | |
1 小时 | 创建 I/O 提交队列 | 是 | 是 | 是 | |
2 小时 | 获取日志页 | 是 | 是 | 是 | IOCTL_STORAGE_QUERY_PROPERTY |
4h | 删除 I/O 完成队列 | 是 | 是 | 是 | |
5 小时 | 创建 I/O 完成队列 | 是 | 是 | 是 | |
6 小时 | 确定 | 是 | 是 | 是 | IOCTL_STORAGE_QUERY_PROPERTY、 IOCTL_STORAGE_FIRMWARE_GET_INFO |
8 小时 | Abort | 是 | |||
9 小时 | 设置功能 | 是 | 是 | 是 | IOCTL_STORAGE_SET_PROPERTY。 目前仅支持主机控制的热管理。 |
啊 | 获取功能 | 是 | 是 | 是 | IOCTL_STORAGE_QUERY_PROPERTY |
Ch | 异步事件请求 | 是 | 是 | 是 | |
Dh | 命名空间管理 | 是 | 是 | 仅 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND | |
10h | 固件提交(以前是固件激活) | 是 | 是 | 是 | IOCTL_STORAGE_FIRMWARE_ACTIVATE |
11 小时 | 固件映像下载 | 是 | 是 | 是 | IOCTL_STORAGE_FIRMWARE_DOWNLOAD |
14h | 设备自测试 | 是 | 是 | IOCTL_STORAGE_PROTOCOL_COMMAND | |
15h | 命名空间附件 | 是 | 是 | 仅 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND | |
18h | Keep Alive | ||||
19h | 指令发送 | 是 | 是 | 是 | |
1Ah | 指令接收 | 是 | 是 | 是 | |
1Ch | 虚拟化管理 | 是 | |||
1Dh | NVMe-MI 发送 | 是 | 是 | 仅 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND | |
1Eh | NVMe-MI 接收 | 是 | 是 | 仅 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND | |
20h | 容量管理 | ||||
24h | 锁定 | ||||
7Ch | Doorbell Buffer 配置 | 是 | |||
7Fh | Fabric 命令 | ||||
80 小时 | 格式化 NVM | 是 | 是 | 是 | 仅限 WinPE 的IOCTL_STORAGE_PROTOCOL_COMMAND 。 SCSIOP_SANITIZE的IOCTL_SCSI_PASS_THROUGH。 仅加密擦除IOCTL_STORAGE_REINITIALIZE_MEDIA 。 |
81 小时 | 安全发送 | 是 | 是 | 是 | SCSIOP_SECURITY_PROTOCOL_OUT的IOCTL_SCSI_PASS_THROUGH |
82 小时 | 安全接收 | 是 | 是 | 是 | SCSIOP_SECURITY_PROTOCOL_IN的IOCTL_SCSI_PASS_THROUGH |
84 小时 | 消毒 | 是 | 是 | 是 | IOCTL_STORAGE_PROTOCOL_COMMAND。 从 Windows 10 版本 2004/2020 年 5 月更新,Windows Server 版本 2004(服务器核心版)。 仅在 Windows 11、Windows Server 2022 之前的 WinPE,并且仅当用户使用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 Base Specification 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 |
1 小时 | 写 | 是 | 是 | 是 | N,Z | IOCTL_SCSI_PASS_THROUGH 的 SCSIOP_WRITE/SCSIOP_WRITE16 |
2 小时 | 读取 | 是 | 是 | 是 | N,Z | IOCTL_SCSI_PASS_THROUGH 的SCSIOP_READ/SCSIOP_READ16 |
4h | 写入不可更正 | 是 | N,Z | |||
5 小时 | 比较 | 是 | 是 | N,Z | 仅 WinPE。 IOCTL_STORAGE_PROTOCOL_COMMAND | |
8 小时 | 写入零 | 是 | N,Z | |||
9 小时 | 数据集管理 | 是 | 是 | N,Z | 仅 TRIM (解除分配)。 用于 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。 | ||
11 小时 | 预留获取 | 是 | 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。 | ||
79 小时 | 区域管理发送 | 是 | 是 | 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 驱动器。