enumerazione NVME_STATUS_GENERIC_COMMAND_CODES (nvme.h)

Contiene valori che indicano uno stato associato al comando generico in molti tipi diversi di comandi.

Questi codici di stato sono del NVME_STATUS_TYPE_GENERIC_COMMANDtipo di codice di stato e vengono pubblicati dal controller in una voce della coda di completamento al termine di un comando. I codici indicano che il comando specificato dagli identificatori della coda di comando e invio nella voce della coda di completamento è stato completato.

Sintassi

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;

Costanti

 
NVME_STATUS_SUCCESS_COMPLETION
Il comando è stato completato correttamente.
NVME_STATUS_INVALID_COMMAND_OPCODE
Il campo opcode del comando associato non è valido.
NVME_STATUS_INVALID_FIELD_IN_COMMAND
Nei parametri del comando viene specificato un campo non valido o non supportato.
NVME_STATUS_COMMAND_ID_CONFLICT
L'identificatore del comando è già in uso.

NOTA

Il numero di comandi cercati per un conflitto id è specifico dell'implementazione.

NVME_STATUS_DATA_TRANSFER_ERROR
Indica un errore durante il trasferimento dei dati o dei metadati associati a un comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION
Indica che il comando è stato interrotto a causa di una notifica di risparmio energia.
NVME_STATUS_INTERNAL_DEVICE_ERROR
Il comando non è stato completato correttamente a causa di un errore interno. I dettagli sull'errore interno del dispositivo vengono restituiti come evento asincrono.
NVME_STATUS_COMMAND_ABORT_REQUESTED
Il comando è stato interrotto a causa della ricezione di un comando di interruzione del comando che ha specificato l'identificatore della coda di invio e l'identificatore di comando di questo comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION
Il comando è stato interrotto a causa di una richiesta Delete I/O Submission Queue ricevuta per la coda di invio a cui è stato inviato il comando.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND
Il comando è stato interrotto a causa dell'errore dell'altro comando in un'operazione fuse.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND
Il comando è stato interrotto a causa del fatto che il comando fuso complementare non è stato trovato come voce successiva della coda di invio.
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT
Lo spazio dei nomi o il formato dello spazio dei nomi non è valido.
NVME_STATUS_COMMAND_SEQUENCE_ERROR
Il comando è stato interrotto a causa di una violazione del protocollo in una sequenza multi-comando. Ad esempio, una violazione delle regole di sequenziazione invio di sicurezza e ricezione della sicurezza nel protocollo di comunicazione sincrona dell'interfaccia di archiviazione TCG.
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR
Il comando include un descrittore SGL Last Segment o SGL Segment non valido. Ciò può verificarsi quando il segmento SGL a cui punta un descrittore SGL Last Segment contiene un descrittore segmento SGL o un descrittore SGL Last Segment o un descrittore di segmento SGL. Questo problema può verificarsi quando un descrittore SGL Last Segment contiene una lunghezza non valida(ad esempio, una lunghezza pari a zero o una che non è un multiplo di 16).
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR
In una posizione diversa dall'ultimo descrittore di un segmento SGL è presente un descrittore SGL Last Segment o un descrittore SGL in una posizione diversa dall'ultimo descrittore di un segmento in base alla lunghezza indicata.
NVME_STATUS_DATA_SGL_LENGTH_INVALID
Questa situazione può verificarsi se la lunghezza di un data SGL è troppo breve. Ciò può verificarsi se la lunghezza di un data SGL è troppo lunga e il titolare del trattamento non supporta i trasferimenti SGL più lunghi della quantità di dati da trasferire come indicato nel campo SGL Support (SGLS) della struttura dei dati Identify Controller (NVME_IDENTIFY_CONTROLLER_DATA).
NVME_STATUS_METADATA_SGL_LENGTH_INVALID
Ciò può verificarsi se la lunghezza di una SGL metadati è troppo breve. Ciò può verificarsi se la lunghezza di una SGL dei metadati è troppo lunga e il controller non supporta i trasferimenti SGL più lunghi della quantità di dati da trasferire come indicato nel campo SGL Support (SGLS) del Identify Controller (NVME_IDENTIFY_CONTROLLER_DATA) struttura dei dati.
NVME_STATUS_SGL_DESCR_TYPE_INVALID
Il tipo di descrittore SGL è un tipo non supportato dal controller.
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER
Il tentativo di utilizzo del buffer di memoria del controller non è supportato dal controller.
NVME_STATUS_PRP_OFFSET_INVALID
Il campo Offset per una voce PRP non è valido. Ciò può verificarsi quando è presente una voce PRP con offset diverso da zero dopo la prima voce.
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED
La lunghezza specificata supera le dimensioni dell'unità di scrittura atomica.
NVME_STATUS_OPERATION_DENIED
Il comando è stato negato a causa della mancanza di diritti di accesso.
NVME_STATUS_SGL_OFFSET_INVALID
L'offset specificato in un descrittore non è valido.
NVME_STATUS_RESERVED
Riservato.
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT
Il sottosistema NVM ha rilevato l'uso simultaneo di valori di identificatore host a 64 bit e a 128 bit in controller diversi.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED
Il timer Keep Alive è scaduto.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID
Il valore Keep Alive Timeout specificato non è valido.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT
Il comando è stato interrotto a causa di un comando Di acquisizione prenotazioni con l'azione di acquisizione della prenotazione (RACQA) impostata su 010b (Preempt and Abort).
NVME_STATUS_SANITIZE_FAILED
L'operazione di purificazione più recente non è riuscita e non è stata completata alcuna azione di ripristino.
NVME_STATUS_SANITIZE_IN_PROGRESS
La funzione richiesta (ad esempio, il comando) è vietata mentre è in corso un'operazione di purificazione.
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID
La granularità di allineamento dell'indirizzo o lunghezza per un descrittore di blocco SGLData non è valida.
NVME_STATUS_NVM_LBA_OUT_OF_RANGE
Il comando fa riferimento a un LBA che supera le dimensioni dello spazio dei nomi.
NVME_STATUS_NVM_CAPACITY_EXCEEDED
L'esecuzione del comando ha causato il superamento della capacità dello spazio dei nomi. Questo errore si verifica quando l'utilizzo dello spazio dei nomi supera la capacità dello spazio dei nomi.
NVME_STATUS_NVM_NAMESPACE_NOT_READY
Lo spazio dei nomi non è pronto per l'accesso. Il bit Do Not Retry indica se eseguire nuovamente il comando in un secondo momento può avere esito positivo.
NVME_STATUS_NVM_RESERVATION_CONFLICT
Il comando è stato interrotto a causa di un conflitto con una prenotazione contenuta nello spazio dei nomi a cui si accede.
NVME_STATUS_FORMAT_IN_PROGRESS
Lo spazio dei nomi è attualmente formattato. Il bit Do Not Retry verrà cancellato su '0' per indicare che il comando può avere esito positivo se viene inviato di nuovo.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
intestazione nvme.h