enumeración NVME_STATUS_GENERIC_COMMAND_CODES (nvme.h)

Contiene valores que indican un estado asociado al comando que es genérico en muchos tipos diferentes de comandos.

Estos códigos de estado son del de tipo de código de estado NVME_STATUS_TYPE_GENERIC_COMMANDy el controlador publica en una entrada de cola de finalización de cuando se completa un comando. Los códigos indican que el comando especificado por los identificadores de la cola de comandos y envío en la entrada de cola de finalización se ha completado.

Sintaxis

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;

Constantes

 
NVME_STATUS_SUCCESS_COMPLETION
El comando se completó correctamente.
NVME_STATUS_INVALID_COMMAND_OPCODE
El campo de código de operación de comando asociado no es válido.
NVME_STATUS_INVALID_FIELD_IN_COMMAND
Se especifica un campo no válido o no admitido en los parámetros de comando.
NVME_STATUS_COMMAND_ID_CONFLICT
El identificador de comando ya está en uso.

NOTA

El número de comandos que se buscan en un conflicto de identificador es específico de la implementación.

NVME_STATUS_DATA_TRANSFER_ERROR
Indica un error al transferir los datos o metadatos asociados a un comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION
Indica que el comando se anuló debido a una notificación de pérdida de energía.
NVME_STATUS_INTERNAL_DEVICE_ERROR
El comando no se completó correctamente debido a un error interno. Los detalles sobre el error interno del dispositivo se devuelven como un evento asincrónico.
NVME_STATUS_COMMAND_ABORT_REQUESTED
El comando se anuló debido a que se recibe un comando De anulación de comandos que especificó el identificador de cola de envío y el identificador de comando de este comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION
El comando se anuló debido a una solicitud de cola de envío de E/S de eliminación recibida para la cola de envío a la que se envió el comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND
El comando se anuló debido a un error en la otra operación fusionada.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND
El comando se anuló debido a que el comando complementario fusionado no se encuentra como la entrada de cola de envío posterior.
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT
El espacio de nombres o el formato de ese espacio de nombres no es válido.
NVME_STATUS_COMMAND_SEQUENCE_ERROR
El comando se anuló debido a una infracción de protocolo en una secuencia de varios comandos. Por ejemplo, una infracción de las reglas de secuenciación de envío de seguridad y recepción de seguridad en el protocolo de comunicaciones de interfaz sincrónica de almacenamiento TCG.
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR
El comando incluye un descriptor SGL Last Segment o SGL Segment no válido. Esto puede ocurrir cuando el segmento SGL al que apunta un descriptor SGL Last Segment contiene un descriptor de segmento SGL o un descriptor SGL Last Segment o un descriptor de segmento SGL. Esto puede ocurrir cuando un descriptor SGL Last Segment contiene una longitud no válida (por ejemplo, una longitud de cero o una que no es un múltiplo de 16).
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR
Hay un descriptor SGL Last Segment o un descriptor de segmento SGL en una ubicación distinta del último descriptor de un segmento en función de la longitud indicada.
NVME_STATUS_DATA_SGL_LENGTH_INVALID
Esto puede ocurrir si la longitud de un SGL de datos es demasiado corta. Esto puede ocurrir si la longitud de un SGL de datos es demasiado larga y el controlador no admite transferencias SGL más largas que la cantidad de datos que se van a transferir, como se indica en el campo Compatibilidad con SGL (SGLS) del controlador de identificación de (NVME_IDENTIFY_CONTROLLER_DATA) estructura de datos.
NVME_STATUS_METADATA_SGL_LENGTH_INVALID
Esto puede ocurrir si la longitud de un SGL de metadatos es demasiado corta. Esto puede ocurrir si la longitud de un SGL de metadatos es demasiado larga y el controlador no admite transferencias SGL más largas que la cantidad de datos que se van a transferir, como se indica en el campo Compatibilidad con SGL (SGLS) del controlador de identificación de (NVME_IDENTIFY_CONTROLLER_DATA) estructura de datos.
NVME_STATUS_SGL_DESCR_TYPE_INVALID
El tipo de un descriptor SGL es un tipo que no es compatible con el controlador.
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER
El controlador no admite el uso intentado del búfer de memoria del controlador.
NVME_STATUS_PRP_OFFSET_INVALID
El campo Desplazamiento de una entrada PRP no es válido. Esto puede ocurrir cuando hay una entrada PRP con un desplazamiento distinto de cero después de la primera entrada.
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED
La longitud especificada supera el tamaño de la unidad de escritura atómica.
NVME_STATUS_OPERATION_DENIED
Se denegó el comando debido a la falta de derechos de acceso.
NVME_STATUS_SGL_OFFSET_INVALID
El desplazamiento especificado en un descriptor no es válido.
NVME_STATUS_RESERVED
Reservado.
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT
El subsistema NVM detectó el uso simultáneo de valores de identificador de host de 64 y 128 bits en diferentes controladores.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED
El temporizador Keep Alive expiró.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID
El valor Keep Alive Timeout especificado no es válido.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT
El comando se anuló debido a un comando Reservation Acquire con la acción de adquisición de reserva (RACQA) establecida en 010b (Preempt y Abort).
NVME_STATUS_SANITIZE_FAILED
Error en la operación de saneamiento más reciente y no se ha completado correctamente ninguna acción de recuperación.
NVME_STATUS_SANITIZE_IN_PROGRESS
La función solicitada (por ejemplo, comando) está prohibida mientras una operación de saneamiento está en curso.
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID
La alineación de direcciones o la granularidad de longitud de un descriptor de bloque SGLData no es válida.
NVME_STATUS_NVM_LBA_OUT_OF_RANGE
El comando hace referencia a un LBA que supera el tamaño del espacio de nombres.
NVME_STATUS_NVM_CAPACITY_EXCEEDED
La ejecución del comando ha provocado que se supere la capacidad del espacio de nombres. Este error se produce cuando el Namespace Uso supera la capacidad de Namespace.
NVME_STATUS_NVM_NAMESPACE_NOT_READY
El espacio de nombres no está listo para accederse. El bit No reintentar indica si la nueva emisión del comando en un momento posterior puede realizarse correctamente.
NVME_STATUS_NVM_RESERVATION_CONFLICT
El comando se anuló debido a un conflicto con una reserva mantenida en el espacio de nombres al que se accede.
NVME_STATUS_FORMAT_IN_PROGRESS
El espacio de nombres está siendo formateado actualmente. El bit No reintentar se borrará en "0" para indicar que el comando puede realizarse correctamente si se vuelve a enviar.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
encabezado de nvme.h