Поделиться через


структура NVME_ERROR_INFO_LOG (nvme.h)

Содержит поля, указывающие сведения на странице журнала сведений об ошибках.

Страница журнала сведений об ошибках содержит расширенные сведения об ошибках для команды, которая завершилась ошибкой или сообщила об ошибке, которая не связана с конкретной командой. Расширенные сведения об ошибке предоставляются, если1 в поле Состояние для записи очереди завершения, связанной с командой, завершив ее ошибкой, или как часть асинхронного события с типом состояния Ошибка.

Страница журнала сведений об ошибках является глобальной для контроллера. Этот журнал ошибок может возвращать последние n ошибок. Если ведущее программное обеспечение указывает передачу данных размера n журналов ошибок, возвращаются журналы ошибок для последних n ошибок. Порядок записей основан на времени возникновения ошибки, при этом последняя ошибка возвращается в качестве первого журнала.

Страница журнала сведений об ошибках — это набор записей 64 байта; Число поддерживаемых записей указывается в структуре данных Идентификация контроллера .

Эта структура возвращается командой Получить страницу журнала. Дополнительные сведения см. в разделе NVME_CDW10_GET_LOG_PAGE.

Синтаксис

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;

Члены

ErrorCount

64-разрядное число ошибок с увеличением, указывающее уникальный идентификатор для этой ошибки.

Число ошибок начинается с 1h, увеличивается для каждой уникальной записи журнала ошибок и сохраняется в условиях выключения питания. Значение 0h указывает на недопустимую запись. Это значение может использоваться при потере записей или при меньшем количестве ошибок, чем максимальное количество записей, поддерживаемых контроллером.

SQID

Указывает идентификатор очереди отправки (SQID) команды, с которой связаны сведения об ошибке. Если ошибка не связана с конкретной командой, для этого поля устанавливается значение FFFFh.

CMDID

Указывает идентификатор команды (CMDID), с которой связана ошибка. Если ошибка не связана с конкретной командой, для нее устанавливается значение FFFFh.

Status

Указывает поле состояния для завершенной команды.

Поле состояния находится в битах 01:15. Бит 0 соответствует тегу phase (P), размещенного для команды. Если ошибка не относится к определенной команде, в этом поле отображается наиболее применимое значение состояния.

ParameterErrorLocation

Структура ParameterErrorLocation , содержащая поля, указывающие байт и бит параметра команды, с которым связана ошибка, если применимо.

Если параметр охватывает несколько байтов или битов, расположение указывает первый байт и бит параметра. Если ошибка не связана с конкретной командой, для этого поля устанавливается значение FFFFh.

ParameterErrorLocation.Byte

Указывает byte в команде, содержащей ошибку.

Это значение содержится в битах 0:7 структуры ParameterErrorLocation . Допустимые значения: от 0 до 63.

ParameterErrorLocation.Bit

Указывает бит в команде, содержащей ошибку.

Это значение содержится в битах 8:10 структуры ParameterErrorLocation . Допустимые значения: от 0 до 7.

ParameterErrorLocation.Reserved

Биты 11:15 структуры ParameterErrorLocation зарезервированы.

Lba

Указывает первый адрес логического блока (LBA), по которому возникла ошибка, если применимо.

NameSpace

Указывает пространство имен, с которым связана ошибка, если применимо.

VendorInfoAvailable

При наличии дополнительных сведений об ошибках поставщика это поле предоставляет идентификатор страницы журнала, связанной с этой страницей.

Значение 00h указывает, что дополнительные сведения недоступны. Допустимые значения находятся в диапазоне от 80h до FFh.

Reserved0[3]

Зарезервированное поле.

CommandSpecificInfo

Содержит сведения о команде. Если используется, определение команды указывает возвращаемые сведения.

Reserved1[24]

Зарезервированное поле.

Требования

Требование Значение
Минимальная версия клиента Windows 10
Верхняя часть nvme.h