enumeração NVME_STATUS_COMMAND_SPECIFIC_CODES (nvme.h)

Contém valores que indicam status específicos para um comando específico.

Esses códigos de status são do tipo de código de statusNVME_STATUS_TYPE_COMMAND_SPECIFIC e são postados pelo controlador em uma entrada de Fila de Conclusão quando um comando é concluído.

Syntax

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;

Constantes

 
NVME_STATUS_COMPLETION_QUEUE_INVALID
O identificador de Fila de Conclusão especificado no comando Criar Fila de Envio de E/S não existe.
NVME_STATUS_INVALID_QUEUE_IDENTIFIER
Indica os seguintes status para estes comandos:

- Criar fila de envio de E/S: a criação da Fila de Envio de E/S falhou devido a um identificador de fila inválido especificado como parte do comando. Um identificador de fila inválido é aquele que está atualmente em uso ou um que está fora do intervalo com suporte pelo controlador.
- Excluir Fila de Envio de E/S: o identificador de fila especificado no comando é inválido. Esse erro também será indicado se o identificador da Fila de Conclusão do Administração for especificado.
- Criar Fila de Conclusão de E/S: falha na criação da Fila de Conclusão de E/S devido a um identificador de fila inválido especificado como parte do comando. Um identificador de fila inválido é aquele que está atualmente em uso ou um que está fora do intervalo com suporte pelo controlador.
– Excluir Fila de Conclusão de E/S: o identificador de fila especificado no comando é inválido. Esse erro também será indicado se o identificador da Fila de Conclusão do Administração for especificado.
NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED
Indica os seguintes status para os comandos Criar Fila de Envio de E/S e Criar Fila de Conclusão de E/S:

O host tentou criar uma Fila de Conclusão de E/S com um número inválido de entradas. Por exemplo, um valor igual a zero ou um valor que excede o máximo suportado pelo controlador especificado no campo MQES da estrutura NVME_CONTROLLER_CAPABILITIES .
NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED
O número de comandos abort pendentes simultâneos excedeu o limite indicado no campo ACL da estrutura de dados Identificar Controlador.
NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED
O número de comandos de Solicitação de Evento Assíncrona pendentes simultâneos foi excedido.
NVME_STATUS_INVALID_FIRMWARE_SLOT
O slot de firmware indicado no comando Firmware Commit é inválido ou somente leitura. Esse erro será indicado se o slot de firmware exceder o número com suporte.
NVME_STATUS_INVALID_FIRMWARE_IMAGE
A imagem de firmware especificada para ativação no comando Firmware Commit é inválida e não é carregada pelo controlador.
NVME_STATUS_INVALID_INTERRUPT_VECTOR
Falha na criação da Fila de Conclusão de E/S devido a um vetor de interrupção inválido especificado como parte do comando Criar Fila de Conclusão de E/S.
NVME_STATUS_INVALID_LOG_PAGE
A página de log indicada no comando Obter Página de Log é inválida. Essa condição de erro também será retornada se uma página de log reservada for solicitada.
NVME_STATUS_INVALID_FORMAT
Indica o seguinte status para o comando Formatar NVM: o formato especificado é inválido.

Isso pode ocorrer devido a várias condições, incluindo:

– Especificando um número de formato lba (endereço de bloco lógico) inválido.
– Habilitar informações de proteção quando não houver metadados suficientes por LBA.
- Estado de segurança inválido. Para obter mais informações, consulte a Especificação de Interações da Interface de Armazenamento TCG (SIIS).
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET
Indica o seguinte status para o comando Firmware Commit:

A confirmação de firmware foi bem-sucedida, no entanto, a ativação da imagem de firmware requer uma redefinição convencional. Se ocorrer uma redefinição de nível de função (FLR) ou de controlador antes de uma redefinição convencional, o controlador deverá continuar a operação com a imagem de firmware em execução no momento.
NVME_STATUS_INVALID_QUEUE_DELETION
Indica o seguinte status para o comando Excluir Fila de Conclusão de E/S:

É inválido excluir a Fila de Conclusão de E/S Especificada. O motivo típico para essa condição de erro é que há uma Fila de Envio de E/S associada que não foi excluída.
NVME_STATUS_FEATURE_ID_NOT_SAVEABLE
O Identificador de Recurso especificado no comando Definir Recursos não dá suporte a um valor que pode ser salvo.
NVME_STATUS_FEATURE_NOT_CHANGEABLE
O Identificador de Recurso especificado no comando Definir Recursos pode não ser alterado.
NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC
O Identificador de Recurso especificado no comando Definir Recursos não é específico do namespace. As configurações do Identificador de Recurso se aplicam a todos os namespaces.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET
Indica status para o comando Firmware Commit.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET
Indica o seguinte status para o comando Firmware Commit:

A confirmação de firmware foi bem-sucedida, no entanto, a ativação da imagem de firmware requer uma redefinição de subsistema NVM. Se qualquer outro tipo de redefinição ocorrer antes de uma Redefinição do Subsistema NVM, o controlador deverá continuar a operação com a imagem de firmware em execução no momento.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION
Indica o seguinte status para o comando Firmware Commit:

A imagem especificada se ativada imediatamente excederia o valor de Tempo Máximo para Ativação de Firmware (MFTA) relatado em Identificar Controlador. Para ativar o firmware, o comando Firmware Commit precisa ser reutilizado e a imagem ativada usando uma redefinição.
NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED
Indica o seguinte status para o comando Firmware Commit:

A imagem especificada está sendo proibida de ser ativada pelo controlador por motivos específicos do fornecedor. Por exemplo, o controlador não dá suporte ao firmware de revisão inativo.
NVME_STATUS_OVERLAPPING_RANGE
Indica os seguintes status para estes comandos:

- Confirmação de firmware: esse erro será indicado se a imagem de firmware tiver intervalos sobrepostos.
- Definir Recursos: esse erro será indicado se a estrutura de dados tipo de intervalo LBA tiver intervalos sobrepostos.
- Download de Imagem de Firmware: esse erro será indicado se a imagem de firmware tiver intervalos sobrepostos.
NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY
Indica as seguintes status para o comando Gerenciamento de Namespace:

A criação do namespace requer mais espaço livre do que o disponível no momento. O campo Informações Específicas do Comando do Log de Informações de Erro especifica a quantidade total de capacidade de NVM necessária para criar o namespace em bytes.
NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE
Indica as seguintes status para o comando Gerenciamento de Namespace:

O número de namespaces com suporte foi excedido.
NVME_STATUS_NAMESPACE_ALREADY_ATTACHED
Indica o seguinte status para o comando Namespace Attachment:

O controlador já está anexado ao namespace especificado.
NVME_STATUS_NAMESPACE_IS_PRIVATE
Indica o seguinte status para o comando Namespace Attachment:

O controlador não está anexado ao namespace. A solicitação para anexar o controlador não pôde ser concluída porque o namespace é privado e já está anexado a um controlador.
NVME_STATUS_NAMESPACE_NOT_ATTACHED
Indica o seguinte status para o comando Namespace Attachment:

O controlador não está anexado ao namespace. Não foi possível concluir a solicitação para desanexar o controlador.
NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED
NVME_STATUS_CONTROLLER_LIST_INVALID
Indica o seguinte status para o comando Namespace Attachment:

A lista de controladores fornecida é inválida.
NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS
Indica status para o comando Auto-teste do Dispositivo.
NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED
Indica status para o comando Firmware Commit.
NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER
Indica status para o comando Gerenciamento de Virtualização.
NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE
Indica status para o comando Gerenciamento de Virtualização
NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES
Indica status para o comando Gerenciamento de Virtualização.
NVME_STATUS_INVALID_RESOURCE_IDENTIFIER
Indica status para o comando Gerenciamento de Virtualização.
NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED
Indica status para o comando Diretiva streams.
NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES
Indica os seguintes status para estes comandos: Gerenciamento de Conjunto de Dados, Leitura, Gravação

Os atributos especificados no comando são conflitantes.
NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION
Indica o seguinte status para estes comandos: Comparar, Ler, Gravar, Gravar Zeros

As configurações de Informações de Proteção especificadas no comando são inválidas.
NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE
Indica os seguintes status para estes comandos: Gerenciamento de conjunto de dados, Gravação, Gravação Não Recorrecionável, Gravar Zeros

Opcionalmente, o controlador poderá relatar esse status se uma desalocação for tentada para um intervalo somente leitura.

Requisitos

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