enumeración NVME_NVM_COMMANDS (nvme.h)

Contiene valores que indican un comando en el conjunto de comandos de NVM.

Syntax

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;

Constantes

 
NVME_NVM_COMMAND_FLUSH
Comando Flush que confirma los datos y los metadatos asociados a los espacios de nombres especificados en medios no volátiles. El vaciado se aplica a todos los comandos completados antes del envío del comando Flush. El controlador también puede vaciar datos adicionales o metadatos de cualquier espacio de nombres.
NVME_NVM_COMMAND_WRITE
Comando Write que escribe datos y metadatos, si procede, en el controlador NVM para los bloques lógicos especificados. El host también puede especificar la información de protección que se incluirá como parte de la operación.

El comando usa los campos Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 y Command Dword 15. Si el comando usa PRP para la transferencia de datos, se usan los campos Puntero de metadatos, Entrada PRP 1 y Entrada 2 del PRP. Si el comando usa sgls para la transferencia de datos, se usan los campos SGL Segment Pointer y SGL Entry 1.
NVME_NVM_COMMAND_READ
Comando Read que lee datos y metadatos, si procede, desde el controlador NVM para los bloques lógicos especificados. El comando puede especificar la información de protección que se va a comprobar como parte de la operación de lectura.

El comando usa los campos Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 y Command Dword 15. Si el comando usa PRP para la transferencia de datos, se usan los campos Puntero de metadatos, Entrada PRP 1 y Entrada 2 del PRP. Si el comando usa sgls para la transferencia de datos, se usan los campos SGL Segment Pointer y SGL Entry 1.
NVME_NVM_COMMAND_WRITE_UNCORRECTABLE
El comando Write Uncorrectable que se usa para marcar un intervalo de bloques lógicos como no válidos. Cuando los bloques lógicos especificados se leen después de esta operación, se devuelve un error con el estado Error de lectura irrecuperado. Para borrar el estado de bloque lógico no válido, se realiza una operación de escritura en esos bloques lógicos.

Los campos usados son Command Dword 10, Command Dword 11 y Command Dword 12. Todos los demás campos específicos del comando están reservados.
NVME_NVM_COMMAND_COMPARE
El comando Compare que lee los bloques lógicos especificados por el comando desde el medio y compara los datos leídos con un búfer de datos de comparación transferido como parte del comando. Si los datos leídos del controlador y el búfer de datos de comparación son equivalentes sin ninguna comparación incorrecta, el comando se completa correctamente. Si hay alguna incompatibilidad, el comando se completa con un error de Comparación de errores. Si se proporcionan metadatos, también se realiza una comparación para los metadatos.

El comando usa los campos Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 y Command Dword 15. Si el comando usa PRP para la transferencia de datos, se usan los campos Puntero de metadatos, Entrada PRP 1 y Entrada 2 del PRP. Si el comando usa sgls para la transferencia de datos, se usan los campos SGL Segment Pointer y SGL Entry 1. Todos los demás campos específicos del comando están reservados.
NVME_NVM_COMMAND_WRITE_ZEROES
Comando Write Zeroes que se usa para establecer un intervalo de bloques lógicos en cero. Después de completar correctamente este comando, el valor devuelto por las lecturas posteriores de bloques lógicos en este intervalo será ceros hasta que se produzca una escritura en este intervalo LBA. Los metadatos de este comando serán ceros y la información de protección se actualizará en función de CDW12. PRINFO.

Los campos usados son los campos Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 y Command Dword 15.
NVME_NVM_COMMAND_DATASET_MANAGEMENT
El comando Administración de conjuntos de datos que usa el host para indicar los atributos de los intervalos de bloques lógicos.

Esto incluye atributos como la frecuencia con la que los datos se leen o escriben, el tamaño de acceso y otra información que se puede usar para optimizar el rendimiento y la confiabilidad. Este comando es aviso; Un controlador compatible puede optar por no realizar ninguna acción en función de la información proporcionada.

El comando usa los campos Command Dword 10 y Command Dword 11. Si el comando usa PRP para la transferencia de datos, se usan los campos PRP Entry 1 y PRP Entry 2. Si el comando usa sgls para la transferencia de datos, se usa el campo SGL Entry 1. Todos los demás campos específicos del comando están reservados.
NVME_NVM_COMMAND_RESERVATION_REGISTER
El comando Registro de reservas que se usa para registrar, anular el registro o reemplazar una clave de reserva.

El comando usa Command Dword 10 y una estructura de datos Reservation Register en la memoria. Si el comando usa PRP para la transferencia de datos, se usan los campos PRP Entry 1 y PRP Entry 2. Si el comando usa sgls para la transferencia de datos, se usa el campo SGL Entry 1. Todos los demás campos específicos del comando están reservados.
NVME_NVM_COMMAND_RESERVATION_REPORT
El comando Informe de reserva que devuelve una estructura de datos estado de reserva a la memoria que describe el registro y el estado de reserva de un espacio de nombres.

El tamaño de la estructura de datos estado de reserva es una función del número de controladores del subsistema NVM que están asociados a hosts que son registradores del espacio de nombres (por ejemplo, hay una estructura de datos del controlador registrado para cada uno de estos controladores).
NVME_NVM_COMMAND_RESERVATION_ACQUIRE
El comando Reservation Acquire que se usa para adquirir una reserva en un espacio de nombres, anteponer una reserva mantenida en un espacio de nombres y anular una reserva mantenida en un espacio de nombres.

El comando usa Command Dword 10 y una estructura de datos Reservation Acquire en memoria. Si el comando usa PRP para la transferencia de datos, se usan los campos PRP Entry 1 y PRP Entry 2. Si el comando usa sgls para la transferencia de datos, se usa el campo SGL Entry 1. Todos los demás campos específicos del comando están reservados.
NVME_NVM_COMMAND_RESERVATION_RELEASE
El comando Reservation Release que se usa para liberar o borrar una reserva mantenida en un espacio de nombres.

El comando usa Command Dword 10 y una estructura de datos de la versión de reserva en la memoria. Si el comando usa PRP para la transferencia de datos, se usan los campos PRP Entry 1 y PRP Entry 2. Si el comando usa sgls para la transferencia de datos, se usa el campo SGL Entry 1. Todos los demás campos específicos del comando están reservados.

Comentarios

El host envía los comandos nvM cuando el controlador está listo como se indica en el registro de estado del controlador y después de que se hayan creado las colas de envío de E/S y las colas de finalización de E/S adecuadas.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Encabezado nvme.h