enumeração NVME_NVM_COMMANDS (nvme.h)

Contém valores que indicam um comando no Conjunto de Comandos 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
O comando Flush que confirma dados e metadados associados aos namespaces especificados para mídia nãovolatile. A liberação se aplica a todos os comandos concluídos antes do envio do comando Flush. O controlador também pode liberar dados adicionais e/ou metadados de qualquer namespace.
NVME_NVM_COMMAND_WRITE
O comando Write que grava dados e metadados, se aplicável, no controlador NVM para os blocos lógicos especificados. O host também pode especificar informações de proteção a serem incluídas como parte da operação.

O comando usa os campos Comando Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 e Command Dword 15. Se o comando usar PRPs para a transferência de dados, os campos Ponteiro de Metadados, Entrada PRP 1 e Entrada PRP 2 serão usados. Se o comando usar SGLs para a transferência de dados, os campos Ponteiro do Segmento SGL de Metadados e Entrada SGL 1 serão usados.
NVME_NVM_COMMAND_READ
O comando Read que lê dados e metadados, se aplicável, do controlador NVM para os blocos lógicos especificados. O comando pode especificar informações de proteção a serem verificadas como parte da operação de leitura.

O comando usa os campos Comando Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 e Command Dword 15. Se o comando usar PRPs para a transferência de dados, os campos Ponteiro de Metadados, Entrada PRP 1 e Entrada PRP 2 serão usados. Se o comando usar SGLs para a transferência de dados, os campos Ponteiro do Segmento SGL de Metadados e Entrada SGL 1 serão usados.
NVME_NVM_COMMAND_WRITE_UNCORRECTABLE
O comando Write Uncorrectable usado para marcar um intervalo de blocos lógicos como inválido. Quando os blocos lógicos especificados são lidos após essa operação, uma falha é retornada com o erro de leitura não verificado status. Para limpar o bloco lógico inválido status, uma operação de gravação é executada nesses blocos lógicos.

Os campos usados são os campos Command Dword 10, Command Dword 11 e Command Dword 12. Todos os outros campos específicos do comando são reservados.
NVME_NVM_COMMAND_COMPARE
O comando Comparar que lê os blocos lógicos especificados pelo comando do meio e compara os dados lidos com um buffer de dados de comparação transferido como parte do comando. Se os dados lidos do controlador e do buffer de dados de comparação forem equivalentes sem erros, o comando será concluído com êxito. Se houver qualquer erro de comparação, o comando será concluído com um erro de Comparar Falha. Se os metadados forem fornecidos, uma comparação também será executada para os metadados.

O comando usa os campos Comando Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 e Command Dword 15. Se o comando usar PRPs para a transferência de dados, os campos Ponteiro de Metadados, Entrada PRP 1 e Entrada PRP 2 serão usados. Se o comando usar SGLs para a transferência de dados, os campos Ponteiro do Segmento SGL de Metadados e Entrada SGL 1 serão usados. Todos os outros campos específicos do comando são reservados.
NVME_NVM_COMMAND_WRITE_ZEROES
O comando Gravar Zeros usado para definir um intervalo de blocos lógicos como zero. Após a conclusão bem-sucedida desse comando, o valor retornado por leituras subsequentes de blocos lógicos nesse intervalo deverá ser zeros até que ocorra uma gravação nesse intervalo LBA. Os metadados para esse comando devem ser todos zeros e as informações de proteção são atualizadas com base na CDW12. PRINFO.

Os campos usados são os campos Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 e Command Dword 15.
NVME_NVM_COMMAND_DATASET_MANAGEMENT
O comando Gerenciamento de Conjunto de Dados usado pelo host para indicar atributos para intervalos de blocos lógicos.

Isso inclui atributos como frequência em que os dados são lidos ou gravados, tamanho de acesso e outras informações que podem ser usadas para otimizar o desempenho e a confiabilidade. Este comando é consultivo; um controlador em conformidade pode optar por não executar nenhuma ação com base nas informações fornecidas.

O comando usa os campos Command Dword 10 e Command Dword 11. Se o comando usar PRPs para a transferência de dados, os campos Entrada 1 e PRP 2 do PRP serão usados. Se o comando usar SGLs para a transferência de dados, o campo Entrada 1 do SGL será usado. Todos os outros campos específicos do comando são reservados.
NVME_NVM_COMMAND_RESERVATION_REGISTER
O comando Registro de Reserva usado para registrar, cancelar o registro ou substituir uma chave de reserva.

O comando usa o Comando Dword 10 e uma estrutura de dados de Registro de Reserva na memória. Se o comando usar PRPs para a transferência de dados, os campos prp entrada 1 e PRP 2 serão usados. Se o comando usar SGLs para a transferência de dados, o campo Entrada 1 do SGL será usado. Todos os outros campos específicos do comando são reservados.
NVME_NVM_COMMAND_RESERVATION_REPORT
O comando Relatório de Reserva que retorna uma estrutura de dados de Status de Reserva para a memória que descreve o registro e a reserva status de um namespace.

O tamanho da estrutura de dados status de reserva é uma função do número de controladores no Subsistema NVM associado a hosts que são registrantes do namespace (por exemplo, há uma estrutura de dados do Controlador Registrado para cada controlador).
NVME_NVM_COMMAND_RESERVATION_ACQUIRE
O comando Reservation Acquire usado para adquirir uma reserva em um namespace, preemptar uma reserva mantida em um namespace e anular uma reserva mantida em um namespace.

O comando usa o Command Dword 10 e uma estrutura de dados Reservation Acquire na memória. Se o comando usar PRPs para a transferência de dados, os campos prp entrada 1 e PRP 2 serão usados. Se o comando usar SGLs para a transferência de dados, o campo Entrada 1 do SGL será usado. Todos os outros campos específicos do comando são reservados.
NVME_NVM_COMMAND_RESERVATION_RELEASE
O comando Versão de Reserva usado para liberar ou limpar uma reserva mantida em um namespace.

O comando usa o Comando Dword 10 e uma estrutura de dados de Versão de Reserva na memória. Se o comando usar PRPs para a transferência de dados, os campos prp entrada 1 e PRP 2 serão usados. Se o comando usar SGLs para a transferência de dados, o campo Entrada 1 do SGL será usado. Todos os outros campos específicos do comando são reservados.

Comentários

Os comandos NVM são enviados pelo host quando o controlador está pronto conforme indicado no registro status do controlador e depois que as Filas de Envio de E/S apropriadas e as Filas de Conclusão de E/S forem criadas.

Requisitos

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