Compartilhar via


estrutura NVME_ERROR_INFO_LOG (nvme.h)

Contém campos que especificam as informações em uma página de log de Informações de Erro.

A página de log informações de erro contém informações de erro estendidas para um comando que foi concluído com um erro ou relatou um erro que não é específico para um comando específico. Informações de erro estendidas são fornecidas quando Mais (M) é definido 1 no campo Status para a Entrada de Fila de Conclusão associada ao comando que foi concluído com um erro ou como parte de um evento assíncrono com um tipo de status de erro.

A página de log informações de erro é global para o controlador. Esse log de erros pode retornar os últimos n erros. Se o software host especificar uma transferência de dados do tamanho de n logs de erro, os logs de erro dos últimos n erros serão retornados. A ordenação das entradas baseia-se na hora em que o erro ocorreu, com o erro mais recente sendo retornado como o primeiro log.

A página de log informações de erro é um conjunto de 64 entradas de bytes; o número de entradas com suporte é indicado na estrutura de dados Identificar Controlador .

Essa estrutura é retornada pelo comando Get Log Page. Para obter mais informações, consulte NVME_CDW10_GET_LOG_PAGE.

Sintaxe

typedef struct {
  ULONGLONG           ErrorCount;
  USHORT              SQID;
  USHORT              CMDID;
  NVME_COMMAND_STATUS Status;
  struct {
    USHORT Byte : 8;
    USHORT Bit : 3;
    USHORT Reserved : 5;
  } ParameterErrorLocation;
  ULONGLONG           Lba;
  ULONG               NameSpace;
  UCHAR               VendorInfoAvailable;
  UCHAR               Reserved0[3];
  ULONGLONG           CommandSpecificInfo;
  UCHAR               Reserved1[24];
} NVME_ERROR_INFO_LOG, *PNVME_ERROR_INFO_LOG;

Members

ErrorCount

Uma contagem de erros de incremento de 64 bits que indica um identificador exclusivo para esse erro.

A contagem de erros começa em 1h, é incrementada para cada entrada de log de erros exclusiva e é mantida em condições de desligar. Um valor indica 0h uma entrada inválida; esse valor pode ser usado quando há entradas perdidas ou quando há menos erros do que o número máximo de entradas que o controlador dá suporte.

SQID

Indica o SQID (Identificador de Fila de Envio) do comando ao qual as informações de erro estão associadas. Se o erro não for específico a um comando específico, esse campo será definido como FFFFh.

CMDID

Indica o CMDID (Identificador de Comando) do comando ao qual o erro está associado. Se o erro não for específico a um comando específico, isso será definido como FFFFh.

Status

Indica o Campo de Status para o comando que foi concluído.

O Campo de Status está localizado nos bits 01:15. O bit 0 corresponde à Marca de Fase (P) postada para o comando. Se o erro não for específico a um comando específico, esse campo relatará o valor de status mais aplicável.

ParameterErrorLocation

Uma estrutura ParameterErrorLocation que contém campos que indicam o Byte e o Bit do parâmetro de comando ao qual o erro está associado, se aplicável.

Se o parâmetro abranger vários bytes ou bits, o local indicará o primeiro byte e o bit do parâmetro. Se o erro não for específico a um comando específico, esse campo será definido como FFFFh.

ParameterErrorLocation.Byte

Indica o Byte no comando que continha o erro.

Esse valor está contido nos bits 0:7 da estrutura ParameterErrorLocation . Os valores válidos são de 0 a 63.

ParameterErrorLocation.Bit

Indica o Bit no comando que continha o erro.

Esse valor está contido nos bits 8:10 da estrutura ParameterErrorLocation . Os valores válidos são de 0 a 7.

ParameterErrorLocation.Reserved

Os bits 11:15 da estrutura ParameterErrorLocation são reservados.

Lba

Indica o primeiro LBA (Endereço de Bloco Lógico) que experimentou a condição de erro, se aplicável.

NameSpace

Indica o namespace ao qual o erro está associado, se aplicável.

VendorInfoAvailable

Quando há informações de erro específicas do fornecedor adicionais disponíveis, esse campo fornece o identificador de página de log associado a essa página.

Um valor indica 00h que nenhuma informação adicional está disponível. Os valores válidos estão no intervalo de 80h até FFh.

Reserved0[3]

Um campo reservado.

CommandSpecificInfo

Contém informações específicas do comando. Se usada, a definição de comando especifica as informações retornadas.

Reserved1[24]

Um campo reservado.

Requirements

Requirement Value
Cliente mínimo suportado Windows 10
Header nvme.h