перечисление NVME_STATUS_GENERIC_COMMAND_CODES (nvme.h)
Содержит значения, указывающие состояние, связанное с командой, которое является универсальным для многих различных типов команд.
Эти коды состояния относятся к типу кодасостояния NVME_STATUS_TYPE_GENERIC_COMMAND и публикуются контроллером в записи очереди завершения при выполнении команды. Коды указывают, что команда, указанная идентификаторами "Команда" и "Очередь отправки" в записи очереди завершения, завершена.
Синтаксис
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 Идентификатор команды уже используется. ПРИМЕЧАНИЕ Количество команд, в которых выполняется поиск конфликта идентификаторов, зависит от реализации. |
NVME_STATUS_DATA_TRANSFER_ERROR Указывает на ошибку при передаче данных или метаданных, связанных с командой. |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION Указывает, что команда была прервана из-за уведомления об потере питания. |
NVME_STATUS_INTERNAL_DEVICE_ERROR Команда не была успешно выполнена из-за внутренней ошибки. Сведения о внутренней ошибке устройства возвращаются в виде асинхронного события. |
NVME_STATUS_COMMAND_ABORT_REQUESTED Команда была прервана из-за получения команды Command Abort, которая указала идентификатор очереди отправки и идентификатор команды этой команды. |
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 Команда была прервана из-за нарушения протокола в последовательности нескольких команд. Например, нарушение правил последовательности отправки и получения безопасности в протоколе TCG Storage Synchronous Interface Communications. |
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR Команда включает недопустимый дескриптор последнего сегмента SGL или сегмент SGL. Это может произойти, если сегмент SGL, на который указывает дескриптор последнего сегмента SGL, содержит дескриптор сегмента SGL или дескриптор последнего сегмента SGL или дескриптор сегмента SGL. Это может произойти, если дескриптор последнего сегмента SGL содержит недопустимую длину (например, нулевую или не кратную 16). |
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR Дескриптор последнего сегмента SGL или дескриптор сегмента SGL находится в расположении, отличном от последнего дескриптора сегмента на основе указанной длины. |
NVME_STATUS_DATA_SGL_LENGTH_INVALID Это может произойти, если длина SGL данных слишком коротка. Это может произойти, если длина SGL данных слишком длинна, а контроллер не поддерживает передачу SGL дольше, чем объем передаваемых данных, как указано в поле SGL Support (SGLS) структуры данных Identify Controller (NVME_IDENTIFY_CONTROLLER_DATA). |
NVME_STATUS_METADATA_SGL_LENGTH_INVALID Это может произойти, если длина SGL метаданных слишком коротка. Это может произойти, если длина SGL метаданных слишком длинна, а контроллер не поддерживает передачу SGL дольше, чем объем передаваемых данных, как указано в поле Поддержка SGL (SGLS) структуры данных контроллера идентификации (NVME_IDENTIFY_CONTROLLER_DATA ). |
NVME_STATUS_SGL_DESCR_TYPE_INVALID Тип дескриптора SGL — это тип, который не поддерживается контроллером. |
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER Попытка использования буфера памяти контроллера не поддерживается контроллером. |
NVME_STATUS_PRP_OFFSET_INVALID Недопустимое поле Offset для записи 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 Срок действия таймера Keep Alive истек. |
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID Указанное значение времени ожидания Keep Alive является недопустимым. |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT Команда была прервана из-за команды Reservation Acquire с действием получения резервирования (RACQA) значение 010b (Preempt and 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 Выполнение команды привело к превышению емкости пространства имен. Эта ошибка возникает, когда значение параметра Использование пространства имен превышает емкость пространства имен. |
NVME_STATUS_NVM_NAMESPACE_NOT_READY Пространство имен не готово к доступу. Бит Do Not Retry указывает, может ли повторно выполнить команду позже. |
NVME_STATUS_NVM_RESERVATION_CONFLICT Команда была прервана из-за конфликта с резервированием в доступном пространстве имен. |
NVME_STATUS_FORMAT_IN_PROGRESS Пространство имен в настоящее время форматируется. Бит Do Not Retry будет удален до "0", чтобы указать, что команда может быть выполнена успешно, если она будет повторно отправляться. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 |
Верхняя часть | nvme.h |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по