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_PROPERTY、 IOCTL_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_COMMAND。 SCSIOP_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 驱动器 。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈