перечисление NVME_NVM_COMMANDS (nvme.h)

Содержит значения, указывающие команду в наборе команд NVM.

Синтаксис

typedef enum {
  NVME_NVM_COMMAND_FLUSH,
  NVME_NVM_COMMAND_WRITE,
  NVME_NVM_COMMAND_READ,
  NVME_NVM_COMMAND_WRITE_UNCORRECTABLE,
  NVME_NVM_COMMAND_COMPARE,
  NVME_NVM_COMMAND_WRITE_ZEROES,
  NVME_NVM_COMMAND_DATASET_MANAGEMENT,
  NVME_NVM_COMMAND_VERIFY,
  NVME_NVM_COMMAND_RESERVATION_REGISTER,
  NVME_NVM_COMMAND_RESERVATION_REPORT,
  NVME_NVM_COMMAND_RESERVATION_ACQUIRE,
  NVME_NVM_COMMAND_RESERVATION_RELEASE,
  NVME_NVM_COMMAND_COPY,
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND,
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE,
  NVME_NVM_COMMAND_ZONE_APPEND
} NVME_NVM_COMMANDS;

Константы

 
NVME_NVM_COMMAND_FLUSH
Команда Flush, которая фиксирует данные и метаданные, связанные с указанными пространствами имен, на энергонезависимый носитель. Очистка применяется ко всем командам, выполненным до отправки команды Flush. Контроллер также может сбрасывать дополнительные данные и (или) метаданные из любого пространства имен.
NVME_NVM_COMMAND_WRITE
Команда Write, которая записывает данные и метаданные , если применимо, в контроллер NVM для указанных логических блоков. Узел также может указать сведения о защите, которые будут включены в состав операции.

Команда использует поля Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 и Command Dword 15. Если команда использует PRP для передачи данных, то используются поля Указатель метаданных, Запись PRP 1 и Запись PRP 2. Если команда использует SGL для передачи данных, то используются поля Указатель сегментов метаданных SGL и Запись SGL 1.
NVME_NVM_COMMAND_READ
Команда Read, которая считывает данные и метаданные, если применимо, из контроллера NVM для указанных логических блоков. Команда может указать сведения о защите, которые будут проверяться в ходе операции чтения.

Команда использует поля Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 и Command Dword 15. Если команда использует PRP для передачи данных, то используются поля Указатель метаданных, Запись PRP 1 и Запись PRP 2. Если команда использует SGL для передачи данных, то используются поля Указатель сегментов метаданных SGL и Запись SGL 1.
NVME_NVM_COMMAND_WRITE_UNCORRECTABLE
Команда Write Uncorrectable, которая используется для пометки диапазона логических блоков как недопустимого. Когда указанные логические блоки считываются после этой операции, возвращается ошибка с состоянием "Ошибка чтения невосстановлено". Чтобы очистить состояние недопустимого логического блока, в этих логических блоках выполняется операция записи.

Используются поля Command Dword 10, Command Dword 11 и Command Dword 12. Все остальные поля, относящиеся к командам, зарезервированы.
NVME_NVM_COMMAND_COMPARE
Команда Compare, которая считывает логические блоки, заданные командой, из среды и сравнивает считываемые данные с буфером данных сравнения, передаваемым в составе команды . Если данные, считываемые из контроллера, и буфер данных сравнения эквивалентны без ошибок, команда успешно выполняется. При возникновении какого-либо несоответствия команда завершается ошибкой Compare Failure (Сбой сравнения). Если указаны метаданные, то для метаданных также выполняется сравнение.

Команда использует поля Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 и Command Dword 15. Если команда использует PRP для передачи данных, то используются поля Указатель метаданных, Запись PRP 1 и Запись PRP 2. Если команда использует SGL для передачи данных, то используются поля Указатель сегментов метаданных SGL и Запись SGL 1. Все остальные поля, относящиеся к командам, зарезервированы.
NVME_NVM_COMMAND_WRITE_ZEROES
Команда Write Zeroes ,которая используется для задания диапазона логических блоков равным нулю. После успешного выполнения этой команды значение, возвращаемое последующими считываниями логических блоков в этом диапазоне, должно быть равно нулю до тех пор, пока не произойдет запись в этот диапазон LBA. Метаданные для этой команды должны быть все нули, а сведения о защите обновляются на основе CDW12. PRINFO.

Используются поля Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 и Command Dword 15.
NVME_NVM_COMMAND_DATASET_MANAGEMENT
Команда Dataset Management, используемая узлом для указания атрибутов для диапазонов логических блоков.

Сюда входят такие атрибуты, как частота чтения или записи данных, размер доступа и другая информация, которая может использоваться для оптимизации производительности и надежности. Эта команда является рекомендаемой; соответствующий контроллер может не предпринимать никаких действий на основе предоставленной информации.

Команда использует поля Command Dword 10 и Command Dword 11. Если команда использует PRP для передачи данных, используются поля Запись PRP 1 и Запись PRP 2. Если команда использует SGL для передачи данных, используется поле Запись SGL 1. Все остальные поля, относящиеся к командам, зарезервированы.
NVME_NVM_COMMAND_RESERVATION_REGISTER
Команда "Регистрация резервирования", которая используется для регистрации, отмены регистрации или замены ключа резервирования.

Команда использует команду Dword 10 и структуру данных реестра резервирования в памяти. Если команда использует PRP для передачи данных, используются поля ЗАПИСЬ 1 PRP и Запись PRP 2. Если команда использует SGL для передачи данных, используется поле Запись SGL 1. Все остальные поля, относящиеся к командам, зарезервированы.
NVME_NVM_COMMAND_RESERVATION_REPORT
Команда "Отчет о резервировании", которая возвращает в память структуру данных о состоянии резервирования, описывающую регистрацию и состояние резервирования пространства имен.

Размер структуры данных состояния резервирования зависит от числа контроллеров в подсистеме NVM, связанных с узлами, которые являются регистрантами пространства имен (например, для каждого такого контроллера имеется структура данных зарегистрированного контроллера).
NVME_NVM_COMMAND_RESERVATION_ACQUIRE
Команда Reservation Acquire, которая используется для получения резервирования в пространстве имен, вытесняет резервирование, удерживаемое в пространстве имен, и прервать резервирование, удерживаемое в пространстве имен.

Команда использует команду Dword 10 и структуру получения данных резервирования в памяти. Если команда использует PRP для передачи данных, используются поля ЗАПИСЬ 1 PRP и Запись PRP 2. Если команда использует SGL для передачи данных, используется поле Запись SGL 1. Все остальные поля, относящиеся к командам, зарезервированы.
NVME_NVM_COMMAND_RESERVATION_RELEASE
Команда Освобождения резервирования, используемая для освобождения или очистки резервирования, удерживаемого в пространстве имен.

Команда использует команду Dword 10 и структуру данных освобождения резервирования в памяти. Если команда использует PRP для передачи данных, используются поля ЗАПИСЬ 1 PRP и Запись PRP 2. Если команда использует SGL для передачи данных, используется поле Запись SGL 1. Все остальные поля, относящиеся к командам, зарезервированы.

Комментарии

Команды NVM отправляются узлом, когда контроллер готов, как указано в регистре состояния контроллера , и после создания соответствующих очередей отправки ввода-вывода и очередей завершения ввода-вывода.

Требования

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