перечисление 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 Недопустимое поле связанной команды 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 Команда была прервана из-за нарушения протокола в многокомандной последовательности. Например, нарушение правил последовательности отправки и защиты безопасности в протоколе синхронной связи интерфейса хранилища TCG. |
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 (SGLS) контроллера идентификации (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 Поле "Смещение" для записи 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 Эта команда была прервана из-за команды "Приобретение резервирования" с действием "Получение резервирования" (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 Выполнение команды привело к превышению емкости пространства имен. Эта ошибка возникает, когда использование пространства имен превышает емкость пространства имен. |
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 |