Перечисление NVME_STATUS_COMMAND_SPECIFIC_CODES (nvme.h)

Содержит значения, указывающие состояние, относящееся к определенной команде.

Эти коды состояния относятся к NVME_STATUS_TYPE_COMMAND_SPECIFICтипу кода состояния и публикуются контроллером в записи очереди завершения при выполнении команды.

Синтаксис

typedef enum {
  NVME_STATUS_COMPLETION_QUEUE_INVALID,
  NVME_STATUS_INVALID_QUEUE_IDENTIFIER,
  NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED,
  NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED,
  NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED,
  NVME_STATUS_INVALID_FIRMWARE_SLOT,
  NVME_STATUS_INVALID_FIRMWARE_IMAGE,
  NVME_STATUS_INVALID_INTERRUPT_VECTOR,
  NVME_STATUS_INVALID_LOG_PAGE,
  NVME_STATUS_INVALID_FORMAT,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET,
  NVME_STATUS_INVALID_QUEUE_DELETION,
  NVME_STATUS_FEATURE_ID_NOT_SAVEABLE,
  NVME_STATUS_FEATURE_NOT_CHANGEABLE,
  NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION,
  NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED,
  NVME_STATUS_OVERLAPPING_RANGE,
  NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY,
  NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE,
  NVME_STATUS_NAMESPACE_ALREADY_ATTACHED,
  NVME_STATUS_NAMESPACE_IS_PRIVATE,
  NVME_STATUS_NAMESPACE_NOT_ATTACHED,
  NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED,
  NVME_STATUS_CONTROLLER_LIST_INVALID,
  NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS,
  NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED,
  NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER,
  NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE,
  NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES,
  NVME_STATUS_INVALID_RESOURCE_IDENTIFIER,
  NVME_STATUS_SANITIZE_PROHIBITED_ON_PERSISTENT_MEMORY,
  NVME_STATUS_INVALID_ANA_GROUP_IDENTIFIER,
  NVME_STATUS_ANA_ATTACH_FAILED,
  NVME_IO_COMMAND_SET_NOT_SUPPORTED,
  NVME_IO_COMMAND_SET_NOT_ENABLED,
  NVME_IO_COMMAND_SET_COMBINATION_REJECTED,
  NVME_IO_COMMAND_SET_INVALID,
  NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED,
  NVME_STATUS_ZONE_INVALID_FORMAT,
  NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES,
  NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION,
  NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE,
  NVME_STATUS_NVM_COMMAND_SIZE_LIMIT_EXCEEDED,
  NVME_STATUS_ZONE_BOUNDARY_ERROR,
  NVME_STATUS_ZONE_FULL,
  NVME_STATUS_ZONE_READ_ONLY,
  NVME_STATUS_ZONE_OFFLINE,
  NVME_STATUS_ZONE_INVALID_WRITE,
  NVME_STATUS_ZONE_TOO_MANY_ACTIVE,
  NVME_STATUS_ZONE_TOO_MANY_OPEN,
  NVME_STATUS_ZONE_INVALID_STATE_TRANSITION
} NVME_STATUS_COMMAND_SPECIFIC_CODES;

Константы

 
NVME_STATUS_COMPLETION_QUEUE_INVALID
Идентификатор очереди завершения, указанный в команде Создать очередь отправки ввода-вывода, не существует.
NVME_STATUS_INVALID_QUEUE_IDENTIFIER
Указывает следующее состояние для этих команд:

— Создание очереди отправки ввода-вывода. Создание очереди отправки ввода-вывода завершилось сбоем из-за недопустимого идентификатора очереди, указанного в команде. Недопустимый идентификатор очереди — это тот, который используется в настоящее время, или тот, который находится за пределами диапазона, поддерживаемого контроллером.
— Удалить очередь отправки ввода-вывода. Идентификатор очереди, указанный в команде, недопустим. Эта ошибка также указывается, если указан идентификатор очереди завершения Администратор.
— Создание очереди завершения ввода-вывода. Создание очереди завершения ввода-вывода завершилось сбоем из-за недопустимого идентификатора очереди, указанного в команде. Недопустимый идентификатор очереди — это тот, который используется в настоящее время, или тот, который находится за пределами диапазона, поддерживаемого контроллером.
— Удалить очередь завершения ввода-вывода: идентификатор очереди, указанный в команде, недопустим. Эта ошибка также указывается, если указан идентификатор очереди завершения Администратор.
NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED
Указывает следующее состояние для команд Создать очередь отправки ввода-вывода и Создать очередь завершения ввода-вывода:

Узел попытался создать очередь завершения ввода-вывода с недопустимым числом записей. Например, значение, равное нулю, или значение, превышающее максимальное значение, поддерживаемое контроллером, указанным в поле MQESструктуры NVME_CONTROLLER_CAPABILITIES .
NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED
Количество одновременно невыполненных команд прерывания превысило ограничение, указанное в поле ACLструктуры данных Идентификация контроллера.
NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED
Превышено количество одновременно невыполненных команд асинхронного запроса событий.
NVME_STATUS_INVALID_FIRMWARE_SLOT
Слот встроенного ПО, указанный в команде Firmware Commit, недопустим или доступен только для чтения. Эта ошибка указывается, если слот встроенного ПО превышает поддерживаемую версию.
NVME_STATUS_INVALID_FIRMWARE_IMAGE
Образ встроенного ПО, указанный для активации в команде Firmware Commit, недопустим и не загружен контроллером.
NVME_STATUS_INVALID_INTERRUPT_VECTOR
Создание очереди завершения ввода-вывода завершилось сбоем из-за недопустимого вектора прерывания, указанного в команде Создать очередь завершения ввода-вывода.
NVME_STATUS_INVALID_LOG_PAGE
Недопустимая страница журнала, указанная в команде Получить страницу журнала. Это условие ошибки также возвращается при запросе зарезервированной страницы журнала.
NVME_STATUS_INVALID_FORMAT
Указывает следующее состояние для команды Формат NVM: Указанный формат является недопустимым.

Это может быть вызвано различными условиями, в том числе:

— указание недопустимого номера формата адреса логического блока (LBA).
— Включение сведений о защите при недостаточном уровне метаданных для каждого LBA.
— недопустимое состояние безопасности. Дополнительные сведения см. в спецификации взаимодействия интерфейса хранилища TCG (SIIS).
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET
Указывает следующее состояние для команды Firmware Commit:

Фиксация встроенного ПО выполнена успешно, однако для активации образа встроенного ПО требуется обычный сброс. Если сброс уровня функций (FLR) или сброс контроллера происходит до обычного сброса, контроллер должен продолжить работу с текущим выполняемым образом встроенного ПО.
NVME_STATUS_INVALID_QUEUE_DELETION
Указывает следующее состояние для команды Удалить очередь завершения ввода-вывода:

Удаление указанной очереди завершения ввода-вывода недопустимо. Типичной причиной этого условия ошибки является наличие связанной очереди отправки ввода-вывода, которая не была удалена.
NVME_STATUS_FEATURE_ID_NOT_SAVEABLE
Идентификатор компонента, указанный в команде Set Features, не поддерживает сохраняемое значение.
NVME_STATUS_FEATURE_NOT_CHANGEABLE
Идентификатор компонента, указанный в команде Set Features , не может быть изменен.
NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC
Идентификатор компонента, указанный в команде Set Features, не зависит от пространства имен. Параметры идентификатора компонента применяются ко всем пространствам имен.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET
Указывает состояние команды Firmware Commit.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET
Указывает следующее состояние для команды Firmware Commit:

Фиксация встроенного ПО выполнена успешно, однако для активации образа встроенного ПО требуется сброс подсистемы NVM. Если какой-либо другой тип сброса происходит до сброса подсистемы NVM, контроллер должен продолжить работу с текущим выполняющимся образом встроенного ПО.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION
Указывает следующее состояние для команды Firmware Commit:

Изображение, указанное при немедленной активации, превысит максимальное время активации встроенного ПО (MFTA), указанное в разделе Идентификация контроллера. Чтобы активировать встроенное ПО, необходимо повторно вывести команду Firmware Commit и активировать образ с помощью сброса.
NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED
Указывает следующее состояние для команды Firmware Commit:

Указанный образ запрещается активация контроллером по конкретным причинам поставщика. Например, контроллер не поддерживает встроенное ПО неработоприемной редакции.
NVME_STATUS_OVERLAPPING_RANGE
Указывает следующее состояние для этих команд:

— Фиксация встроенного ПО: эта ошибка указывается, если образ встроенного ПО имеет перекрывающиеся диапазоны.
— Задать признаки. Эта ошибка указывается, если структура данных типа диапазона LBA имеет перекрывающиеся диапазоны.
— Загрузка образа встроенного ПО: эта ошибка указывается, если образ встроенного ПО имеет перекрывающиеся диапазоны.
NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY
Указывает следующее состояние для команды Управления пространством имен:

Для создания пространства имен требуется больше свободного места, чем доступно в настоящее время. Поле Сведения о команде журнала сведений об ошибках указывает общую емкость NVM, необходимую для создания пространства имен в байтах.
NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE
Указывает следующее состояние для команды Управления пространством имен:

Превышено количество поддерживаемых пространств имен.
NVME_STATUS_NAMESPACE_ALREADY_ATTACHED
Указывает следующее состояние для команды Namespace Attachment:

Контроллер уже подключен к указанному пространству имен.
NVME_STATUS_NAMESPACE_IS_PRIVATE
Указывает следующее состояние для команды Namespace Attachment:

Контроллер не подключен к пространству имен. Не удалось выполнить запрос на присоединение контроллера, так как пространство имен является частным и уже подключено к одному контроллеру.
NVME_STATUS_NAMESPACE_NOT_ATTACHED
Указывает следующее состояние для команды Namespace Attachment:

Контроллер не подключен к пространству имен. Не удалось выполнить запрос на отключение контроллера.
NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED
NVME_STATUS_CONTROLLER_LIST_INVALID
Указывает следующее состояние для команды Namespace Attachment:

Предоставленный список контроллеров недопустим.
NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS
Указывает состояние команды самотестирования устройства.
NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED
Указывает состояние команды Firmware Commit.
NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER
Указывает состояние команды Virtualization Management.
NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE
Указывает состояние команды Virtualization Management.
NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES
Указывает состояние команды Virtualization Management.
NVME_STATUS_INVALID_RESOURCE_IDENTIFIER
Указывает состояние команды Virtualization Management.
NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED
Указывает состояние для команды Директива потоков.
NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES
Указывает следующее состояние для этих команд: Управление набором данных, Чтение, Запись

Атрибуты, указанные в команде, конфликтуют.
NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION
Указывает следующее состояние для этих команд: Compare, Read, Write, Write Zeroes

Параметры сведений о защите, указанные в команде , недопустимы.
NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE
Указывает следующее состояние для этих команд: Управление набором данных, Запись, Запись неисправимая, Запись нули

При необходимости контроллер может сообщить об этом состоянии, если предпринята попытка освободить диапазон только для чтения.

Требования

Требование Значение
Минимальная версия клиента Windows 10
Верхняя часть nvme.h