estructura NVME_HEALTH_INFO_LOG (nvme.h)
Contiene campos que especifican la información contenida en la página Registro de información de estado/SMART.
La página Smart/ Health Information Log (Registro de información de salud/ SMART) proporciona información de mantenimiento general y INTELIGENTE durante la vida útil del controlador que se conserva en los ciclos de energía. La página de registro se admite de forma global. Para solicitar la página de registro global, especifique el espacio de nombres FFFFFFFFh
.
La página Smart/Health Information Log (Registro de información de estado/ SMART) también se puede admitir por espacio de nombres, tal como se indica en la estructura de datos del controlador de identificación. Si no se admite la página de registro por espacio de nombres, especificando cualquier espacio de nombres distinto FFFFFFFFh
de debe anular el comando con un estado de NVME_STATUS_INVALID_FIELD_IN_COMMAND. En la versión 1.3 de NVMe, no hay ninguna información específica del espacio de nombres definida en la página de registro SMART/Health, por lo que la página de registro global y las páginas de registro específicas de espacios de nombres contienen información idéntica.
Las advertencias críticas relacionadas con el estado del subsistema NVM se indican a través de una notificación de eventos asincrónica al host. Las advertencias que producen una notificación de eventos asincrónica al host se configuran mediante el comando Establecer características.
El rendimiento se puede calcular mediante parámetros devueltos como parte del registro de información de estado/SMART. En concreto, el número de comandos de lectura o escritura, la cantidad de datos leídos o escritos, y la cantidad de tiempo ocupado del controlador permite calcular las E/S por segundo y el ancho de banda.
El comando Obtener página de registro devuelve la estructura NVME_HEALTH_INFO_LOG . Para obtener más información, consulte NVME_CDW10_GET_LOG_PAGE.
Sintaxis
typedef struct {
union {
struct {
UCHAR AvailableSpaceLow : 1;
UCHAR TemperatureThreshold : 1;
UCHAR ReliabilityDegraded : 1;
UCHAR ReadOnly : 1;
UCHAR VolatileMemoryBackupDeviceFailed : 1;
UCHAR Reserved : 3;
} DUMMYSTRUCTNAME;
UCHAR AsUchar;
} CriticalWarning;
UCHAR Temperature[2];
UCHAR AvailableSpare;
UCHAR AvailableSpareThreshold;
UCHAR PercentageUsed;
UCHAR Reserved0[26];
UCHAR DataUnitRead[16];
UCHAR DataUnitWritten[16];
UCHAR HostReadCommands[16];
UCHAR HostWrittenCommands[16];
UCHAR ControllerBusyTime[16];
UCHAR PowerCycle[16];
UCHAR PowerOnHours[16];
UCHAR UnsafeShutdowns[16];
UCHAR MediaErrors[16];
UCHAR ErrorInfoLogEntryCount[16];
ULONG WarningCompositeTemperatureTime;
ULONG CriticalCompositeTemperatureTime;
USHORT TemperatureSensor1;
USHORT TemperatureSensor2;
USHORT TemperatureSensor3;
USHORT TemperatureSensor4;
USHORT TemperatureSensor5;
USHORT TemperatureSensor6;
USHORT TemperatureSensor7;
USHORT TemperatureSensor8;
UCHAR Reserved1[296];
} NVME_HEALTH_INFO_LOG, *PNVME_HEALTH_INFO_LOG;
Miembros
CriticalWarning
Estructura Critical Warning (CriticalWarning) que contiene campos que indican advertencias críticas para el estado del controlador.
Cada campo de la estructura CriticalWarning es un poco que corresponde a un tipo de advertencia crítico; se pueden establecer varios bits. Si se borra un bit en 0
, esa advertencia crítica no se aplica. Los bits de este campo representan el estado asociado actual y no son persistentes.
Las advertencias críticas pueden dar lugar a una notificación de eventos asincrónica al host.
CriticalWarning.DUMMYSTRUCTNAME
CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow
Indica si el espacio disponible ha caído por debajo del umbral.
Cuando este valor se establece 1
en , el espacio disponible ha caído por debajo del umbral.
CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold
Indica si una temperatura está por encima de un umbral de temperatura superior o inferior a un umbral de temperatura inferior.
Cuando este valor se establece 1
en , una temperatura está por encima de un umbral de temperatura superior o por debajo de un umbral de temperatura inferior. Para obtener más información sobre los umbrales de temperatura, consulte NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded
Indica si la confiabilidad del subsistema NVM se ha degradado.
Cuando este valor se establece 1
en , la confiabilidad del subsistema NVM se ha degradado debido a errores importantes relacionados con los medios o a cualquier error interno que degrada la confiabilidad del subsistema NVM.
CriticalWarning.DUMMYSTRUCTNAME.ReadOnly
Indica si el medio se ha colocado en modo de solo lectura.
Cuando este valor se establece 1
en , el medio se ha colocado en modo de solo lectura.
CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed
Indica si se ha producido un error en el dispositivo de copia de seguridad de memoria volátil.
Cuando este valor se establece 1
en , se ha producido un error en el dispositivo de copia de seguridad de memoria volátil. Este campo solo es válido si el controlador tiene una solución de copia de seguridad de memoria volátil.
CriticalWarning.DUMMYSTRUCTNAME.Reserved
Se reservan los bits 05:07 de la estructura CriticalWarning .
CriticalWarning.AsUchar
Temperature[2]
Indica la temperatura compuesta, en grados Kelvin, del dispositivo general, incluido el controlador y el subsistema NVM.
Si la temperatura de este campo supera el umbral de temperatura, puede producirse una finalización de eventos asincrónica. Para obtener más información, consulte NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
Los campos WCTEMP y CCTEMP notifican los valores de umbral de temperatura compuesta de sobrecalentamiento crítico en la estructura de datos del controlador de identificación .
AvailableSpare
Indica un porcentaje normalizado (de 0 a 100) de la capacidad de reserva restante disponible.
AvailableSpareThreshold
Indica el umbral de capacidad de reserva disponible.
Cuando el valor de AvailableSpare cae por debajo del umbral indicado en este campo, puede producirse una finalización de eventos asincrónica. El valor se indica como un porcentaje normalizado (de 0 a 100).
PercentageUsed
Indica una estimación específica del proveedor del porcentaje de vida útil del subsistema NVM utilizado, en función del uso real y la predicción del fabricante de la vida útil de NVM.
Un valor de 100 indica que se ha consumido la resistencia estimada de NVM en el subsistema NVM, pero puede que no indique un error del subsistema NVM. El valor puede superar los 100. Los porcentajes mayores que 254 se representan como 255. Este valor se actualiza una vez por hora de encendido (cuando el controlador no está en estado de suspensión).
Reserved0[26]
Campo reservado.
DataUnitRead[16]
Indica el número de unidades de datos de 512 bytes que el host ha leído del controlador, no incluidos los metadatos.
El valor de este campo se notifica en miles y se redondea hacia arriba. Por ejemplo, un valor de 1 corresponde a 1000 unidades de 512 bytes leídos. Cuando el tamaño del acceso a bloques lógicos (LBA) es un valor distinto de 512 bytes, el controlador convierte la cantidad de datos leídos en 512 unidades de bytes.
Para el conjunto de comandos nvM, los bloques lógicos leídos como parte de las operaciones comparar y leer se incluyen en este valor.
DataUnitWritten[16]
Indica el número de unidades de datos de 512 bytes que el host ha escrito en el controlador, no incluidos los metadatos.
El valor de este campo se notifica en miles y se redondea hacia arriba. Por ejemplo, un valor de 1 corresponde a 1000 unidades de 512 bytes leídos. Cuando el tamaño del acceso a bloques lógicos (LBA) es un valor distinto de 512 bytes, el controlador convierte la cantidad de datos escritos en 512 unidades de bytes.
Para el conjunto de comandos nvM, los bloques lógicos escritos como parte de las operaciones de escritura se incluyen en este valor. Escribir comandos nocorrectables no afectan a este valor.
HostReadCommands[16]
Indica el número de comandos read completados por el controlador.
Para el conjunto de comandos NVM, este es el número de comandos Compare y Read.
HostWrittenCommands[16]
Indica el número de comandos de escritura completados por el controlador.
Para el conjunto de comandos nvM, este es el número de comandos de escritura.
ControllerBusyTime[16]
Indica la cantidad de tiempo, en minutos, que el controlador está ocupado con los comandos de E/S.
El controlador está ocupado cuando hay un comando pendiente para una cola de E/S. En concreto, cuando se emitió un comando a través de una escritura de cola de cola de envío de E/S y la entrada de cola de finalización correspondiente aún no se ha publicado en la cola de finalización de E/S asociada.
PowerCycle[16]
Indica el número de ciclos de energía.
PowerOnHours[16]
Indica el número de horas de encendido. Esto no incluye el tiempo en que el controlador estaba encendido y en una condición de estado de baja potencia.
UnsafeShutdowns[16]
Indica el número de apagados no seguros. Este recuento se incrementa cuando una notificación de apagado, indicada en el archivo SHN de configuración del controlador, no se recibe antes de la pérdida de energía.
MediaErrors[16]
Indica el número de repeticiones en las que el controlador detectó un error de integridad de datos irrecuperado.
Los errores multimedia, como uncorrectable ECC, el error de suma de comprobación CRC o la falta de coincidencia de etiquetas LBA, se incluyen en este campo.
ErrorInfoLogEntryCount[16]
Indica el número de entradas del registro de información de error durante la vida útil del controlador.
WarningCompositeTemperatureTime
Indica la cantidad de tiempo, en minutos, que el controlador está operativo y la Temperatura compuesta (Temperatura) es mayor o igual que el campo Umbral de temperatura compuesta de advertencia (WCTEMP) y menor que el campo Umbral de temperatura compuesta crítica (CCTEMP) en la estructura de datos Identificar controlador .
Si el valor del campo WCTEMP o CCTEMP es 0h
, este campo siempre se borra a 0h
independientemente del valor temperature .
CriticalCompositeTemperatureTime
Indica la cantidad de tiempo en minutos que el controlador está operativo y la temperatura compuesta (temperatura) es mayor el campo Umbral de temperatura compuesta crítica (CCTEMP) en la estructura de datos Identificar controlador .
Si el valor del campo CCTEMP es 0h
, este campo siempre se borra a 0h
independientemente del valor temperature .
TemperatureSensor1
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 1.
TemperatureSensor2
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 2.
TemperatureSensor3
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 3.
TemperatureSensor4
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 4.
TemperatureSensor5
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 5.
TemperatureSensor6
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 6.
TemperatureSensor7
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 7.
TemperatureSensor8
Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 8.
Reserved1[296]
Campo reservado.
Comentarios
La temperatura notificada por un sensor de temperatura se puede usar para desencadenar un evento asincrónico. Para obtener más información, consulte NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Encabezado | nvme.h |