NVME_STATUS_GENERIC_COMMAND_CODES枚举 (nvme.h)
包含一个值,该值指示与命令关联的状态,该命令在很多不同类型的命令中都是通用的。
这些状态代码属于
语法
typedef enum {
NVME_STATUS_SUCCESS_COMPLETION,
NVME_STATUS_INVALID_COMMAND_OPCODE,
NVME_STATUS_INVALID_FIELD_IN_COMMAND,
NVME_STATUS_COMMAND_ID_CONFLICT,
NVME_STATUS_DATA_TRANSFER_ERROR,
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION,
NVME_STATUS_INTERNAL_DEVICE_ERROR,
NVME_STATUS_COMMAND_ABORT_REQUESTED,
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION,
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND,
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND,
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT,
NVME_STATUS_COMMAND_SEQUENCE_ERROR,
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR,
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR,
NVME_STATUS_DATA_SGL_LENGTH_INVALID,
NVME_STATUS_METADATA_SGL_LENGTH_INVALID,
NVME_STATUS_SGL_DESCR_TYPE_INVALID,
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER,
NVME_STATUS_PRP_OFFSET_INVALID,
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED,
NVME_STATUS_OPERATION_DENIED,
NVME_STATUS_SGL_OFFSET_INVALID,
NVME_STATUS_RESERVED,
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT,
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED,
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID,
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT,
NVME_STATUS_SANITIZE_FAILED,
NVME_STATUS_SANITIZE_IN_PROGRESS,
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID,
NVME_STATUS_DIRECTIVE_TYPE_INVALID,
NVME_STATUS_DIRECTIVE_ID_INVALID,
NVME_STATUS_NVM_LBA_OUT_OF_RANGE,
NVME_STATUS_NVM_CAPACITY_EXCEEDED,
NVME_STATUS_NVM_NAMESPACE_NOT_READY,
NVME_STATUS_NVM_RESERVATION_CONFLICT,
NVME_STATUS_FORMAT_IN_PROGRESS
} NVME_STATUS_GENERIC_COMMAND_CODES;
常数
NVME_STATUS_SUCCESS_COMPLETION 命令成功完成。 |
NVME_STATUS_INVALID_COMMAND_OPCODE 关联的命令操作码字段无效。 |
NVME_STATUS_INVALID_FIELD_IN_COMMAND 命令参数中指定了无效或不支持的字段。 |
NVME_STATUS_COMMAND_ID_CONFLICT 命令标识符已在使用中。 注意 搜索 ID 冲突的命令数特定于实现。 |
NVME_STATUS_DATA_TRANSFER_ERROR 指示传输与命令关联的数据或元数据时出错。 |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION 指示命令因断电通知而中止。 |
NVME_STATUS_INTERNAL_DEVICE_ERROR 由于内部错误,命令未成功完成。 内部设备错误的详细信息作为异步事件返回。 |
NVME_STATUS_COMMAND_ABORT_REQUESTED 由于收到指定此命令的提交队列标识符和命令标识符的命令中止,该命令已中止。 |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION 由于为提交队列收到的“删除 I/O 提交队列”请求,命令已中止。 |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND 由于融合操作中的其他命令失败,命令已中止。 |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND 由于未找到作为后续提交队列条目的配套融合命令,该命令已中止。 |
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT 命名空间或该命名空间的格式无效。 |
NVME_STATUS_COMMAND_SEQUENCE_ERROR 由于多命令序列中的协议冲突,命令已中止。 例如,违反 TCG 存储同步接口通信协议中的安全发送和接收排序规则。 |
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR 该命令包含无效的 SGL Last Segment 或 SGL Segment 描述符。 当 SGL Last Segment 描述符指向的 SGL 段包含 SGL 段描述符或 SGL Last Segment 描述符或 SGL 段描述符时,可能会发生这种情况。 当 SGL Last Segment 描述符包含无效长度(例如,长度为零或长度不是 16 的倍数)时,可能会发生这种情况。 |
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR 除了段的最后一个描述符之外的位置,还有一个 SGL Last Segment 描述符或一个 SGL 段描述符,具体取决于所指示的长度。 |
NVME_STATUS_DATA_SGL_LENGTH_INVALID 如果 Data SGL 的长度太短,则可能发生这种情况。 如果数据 SGL 的长度过长,并且控制器不支持 SGL 传输的时间长于要传输的数据量,如 标识控制器(NVME_IDENTIFY_CONTROLLER_DATA) 数据结构中的 SGL 支持(SGLS)字段中所示。 |
NVME_STATUS_METADATA_SGL_LENGTH_INVALID 如果元数据 SGL 的长度太短,可能会发生这种情况。 如果元数据 SGL 的长度过长,并且控制器不支持 SGL 传输的时间长于要传输的数据量,如 标识控制器(NVME_IDENTIFY_CONTROLLER_DATA) 数据结构的 SGL 支持(SGLS)字段中所示。 |
NVME_STATUS_SGL_DESCR_TYPE_INVALID SGL 描述符的类型是控制器不支持的类型。 |
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER 控制器不支持尝试使用控制器内存缓冲区。 |
NVME_STATUS_PRP_OFFSET_INVALID PRP 条目的偏移量字段无效。 当第一个条目之后有一个非零偏移量的 PRP 条目时,可能会发生这种情况。 |
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED 指定的长度超过原子写入单元大小。 |
NVME_STATUS_OPERATION_DENIED 由于缺少访问权限,命令被拒绝。 |
NVME_STATUS_SGL_OFFSET_INVALID 描述符中指定的偏移量无效。 |
NVME_STATUS_RESERVED 保留。 |
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT NVM 子系统检测到在不同控制器上同时使用 64 位和 128 位主机标识符值。 |
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED 保持活动计时器已过期。 |
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID 指定的“保持活动超时”值无效。 |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT 由于预留获取操作(RACQA)设置为 010b(Preempt 和 Abort),该命令已中止。 |
NVME_STATUS_SANITIZE_FAILED 最新清理操作失败,未成功完成恢复操作。 |
NVME_STATUS_SANITIZE_IN_PROGRESS 清理操作正在进行时,禁止请求的函数(例如命令)。 |
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID SGLData 块描述符的地址对齐或长度粒度无效。 |
NVME_STATUS_NVM_LBA_OUT_OF_RANGE 该命令引用超过命名空间大小的 LBA。 |
NVME_STATUS_NVM_CAPACITY_EXCEEDED 命令的执行导致超出命名空间的容量。 当Namespace利用率超过Namespace容量时,会发生此错误。 |
NVME_STATUS_NVM_NAMESPACE_NOT_READY 命名空间尚未准备好访问。 “请勿重试”位指示以后是否重新发出命令可能会成功。 |
NVME_STATUS_NVM_RESERVATION_CONFLICT 由于与访问命名空间上保留的预留发生冲突,命令已中止。 |
NVME_STATUS_FORMAT_IN_PROGRESS 命名空间当前正在格式化。 “请勿重试”位将被清除为“0”,以指示如果重新提交命令,该命令可能会成功。 |
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 |
标头 | nvme.h |