enumeração NVME_STATUS_GENERIC_COMMAND_CODES (nvme.h)

Contém valores que indicam um status associado ao comando que é genérico em muitos tipos diferentes de comandos.

Esses códigos status são do tipo de código de status NVME_STATUS_TYPE_GENERIC_COMMAND e são postados pelo controlador em uma entrada de Fila de Conclusão quando um comando é concluído. Os códigos indicam que o comando especificado pelos identificadores command e submission queue na entrada da fila de conclusão foi concluído.

Syntax

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
O comando foi concluído com sucesso.
NVME_STATUS_INVALID_COMMAND_OPCODE
O campo opcode de comando associado não é válido.
NVME_STATUS_INVALID_FIELD_IN_COMMAND
Um campo inválido ou sem suporte é especificado nos parâmetros de comando.
NVME_STATUS_COMMAND_ID_CONFLICT
O identificador de comando já está em uso.

OBSERVAÇÃO

O número de comandos que são pesquisados para um conflito de ID é específico da implementação.

NVME_STATUS_DATA_TRANSFER_ERROR
Indica um erro ao transferir os dados ou metadados associados a um comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION
Indica que o comando foi anulado devido a uma notificação de perda de energia.
NVME_STATUS_INTERNAL_DEVICE_ERROR
O comando não foi concluído com êxito devido a um erro interno. Os detalhes sobre o erro interno do dispositivo são retornados como um evento assíncrono.
NVME_STATUS_COMMAND_ABORT_REQUESTED
O comando foi anulado devido ao recebimento de um comando Command Abort que especificou o Identificador da Fila de Envio e o Identificador de Comando desse comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION
O comando foi anulado devido a uma solicitação Excluir Fila de Envio de E/S recebida para a Fila de Envio à qual o comando foi enviado.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND
O comando foi anulado devido à falha do outro comando em uma operação fundida.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND
O comando foi anulado devido ao comando com fusível complementar não ser encontrado como a entrada subsequente da Fila de Envio.
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT
O namespace ou o formato desse namespace é inválido.
NVME_STATUS_COMMAND_SEQUENCE_ERROR
O comando foi anulado devido a uma violação de protocolo em uma sequência de vários comandos. Por exemplo, uma violação das regras de sequenciamento de Envio de Segurança e Recebimento de Segurança no protocolo TCG Storage Synchronous Interface Communications.
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR
O comando inclui um descritor SGL Last Segment ou SGL Segment inválido. Isso pode ocorrer quando o segmento SGL apontado por um descritor SGL Last Segment contém um descritor de Segmento SGL ou um descritor SGL Last Segment ou um descritor de Segmento SGL. Isso pode ocorrer quando um descritor SGL Last Segment contém um comprimento inválido (por exemplo, um comprimento de zero ou um que não é um múltiplo de 16).
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR
Há um descritor SGL Last Segment ou um descritor de Segmento SGL em um local diferente do último descritor de um segmento com base no comprimento indicado.
NVME_STATUS_DATA_SGL_LENGTH_INVALID
Isso poderá ocorrer se o comprimento de um SGL de Dados for muito curto. Isso poderá ocorrer se o comprimento de um SGL de Dados for muito longo e o controlador não oferecer suporte a transferências SGL por mais tempo do que a quantidade de dados a serem transferidos, conforme indicado no campo SGLS (Suporte A SGL) da estrutura de dados Identificar Controlador (NVME_IDENTIFY_CONTROLLER_DATA).
NVME_STATUS_METADATA_SGL_LENGTH_INVALID
Isso poderá ocorrer se o comprimento de um SGL de Metadados for muito curto. Isso pode ocorrer se o comprimento de um SGL de Metadados for muito longo e o controlador não oferecer suporte a transferências SGL por mais tempo do que a quantidade de dados a serem transferidos, conforme indicado no campo SGLS (Suporte A SGL) da estrutura de dados Identificar Controlador (NVME_IDENTIFY_CONTROLLER_DATA ).
NVME_STATUS_SGL_DESCR_TYPE_INVALID
O tipo de um Descritor SGL é um tipo que não tem suporte do controlador.
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER
Não há suporte para a tentativa de uso do Buffer de Memória do Controlador pelo controlador.
NVME_STATUS_PRP_OFFSET_INVALID
O campo Deslocamento de uma entrada PRP é inválido. Isso pode ocorrer quando há uma entrada PRP com um deslocamento diferente de zero após a primeira entrada.
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED
O comprimento especificado excede o tamanho da unidade de gravação atômica.
NVME_STATUS_OPERATION_DENIED
O comando foi negado devido à falta de direitos de acesso.
NVME_STATUS_SGL_OFFSET_INVALID
O deslocamento especificado em um descritor é inválido.
NVME_STATUS_RESERVED
Reservado.
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT
O subsistema NVM detectou o uso simultâneo de valores de Identificador de Host de 64 bits e 128 bits em controladores diferentes.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED
O Temporizador Keep Alive expirou.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID
O valor keep alive timeout especificado é inválido.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT
O comando foi anulado devido a um comando Reservation Acquire com a RACQA (Ação de Aquisição de Reserva) definida como 010b (Preempt e Abort).
NVME_STATUS_SANITIZE_FAILED
A operação de limpeza mais recente falhou e nenhuma ação de recuperação foi concluída com êxito.
NVME_STATUS_SANITIZE_IN_PROGRESS
A função solicitada (por exemplo, comando) é proibida enquanto uma operação de limpeza está em andamento.
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID
O alinhamento de endereço ou a granularidade de comprimento para um descritor de bloco SGLData é inválido.
NVME_STATUS_NVM_LBA_OUT_OF_RANGE
O comando faz referência a um LBA que excede o tamanho do namespace.
NVME_STATUS_NVM_CAPACITY_EXCEEDED
A execução do comando fez com que a capacidade do namespace fosse excedida. Esse erro ocorre quando a Utilização do Namespace excede a Capacidade do Namespace.
NVME_STATUS_NVM_NAMESPACE_NOT_READY
O namespace não está pronto para ser acessado. O bit Não Repetir indica se a nova emissão do comando em um momento posterior pode ser bem-sucedida.
NVME_STATUS_NVM_RESERVATION_CONFLICT
O comando foi anulado devido a um conflito com uma reserva mantida no namespace acessado.
NVME_STATUS_FORMAT_IN_PROGRESS
O namespace está sendo formatado no momento. O bit Não Repetir será limpo para '0' para indicar que o comando poderá ter êxito se for reenviado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Cabeçalho nvme.h