NVME_HEALTH_INFO_LOG結構 (nvme.h)
包含欄位,指定 SMART / Health Information Log 頁面中所包含的資訊。
[SMART / 健康情況資訊記錄] 頁面會在控制器的生命週期內提供 SMART 和一般健康情況資訊,這些資訊會在整個電源迴圈中保留。 全域支持記錄頁面。 若要要求全域記錄頁面,請指定命名空間 FFFFFFFFh
。
每個命名空間也可能支援SMART / Health Information Log 頁面,如 識別控制器 數據結構中所述。 如果每個命名空間不支援記錄頁面,則指定 以外的任何命名空間 FFFFFFFFh
,應中止命令的狀態 為 NVME_STATUS_INVALID_FIELD_IN_COMMAND。 在 NVMe 1.3 版中,SMART / Health 記錄頁面中沒有定義任何命名空間特定資訊,因此全域記錄頁面和命名空間特定記錄頁包含相同的資訊。
有關 NVM 子系統健康情況的重大警告會透過異步事件通知向主機指出。 使用 [設定功能] 命令來設定導致主機異步事件通知的警告。
效能可能會使用傳回的參數來計算,做為SMART / Health Information 記錄檔的一部分。 具體來說,讀取或寫入命令的數目、讀取或寫入的數據量,以及控制器忙碌時間量,可計算每秒 I/O 和頻寬。
取得記錄頁命令會傳回 NVME_HEALTH_INFO_LOG 結構。 如需詳細資訊,請參閱 NVME_CDW10_GET_LOG_PAGE。
語法
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;
成員
CriticalWarning
重大警告 (CriticalWarning) 結構,其中包含指出控制器狀態重大警告的字段。
CriticalWarning 結構的每個欄位都是對應至重大警告類型的位;可以設定多個位。 如果已將 位清除為 0
,則不會套用該重大警告。 此欄位代表目前相關聯的狀態,而且不是持續性的。
重大警告可能會導致異步事件通知給主機。
CriticalWarning.DUMMYSTRUCTNAME
CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow
指出可用的備援空間是否低於閾值。
當此值設定為 1
時,可用的備援空間會低於閾值。
CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold
指出溫度高於溫度臨界值或低於溫度臨界值。
當此值設定為 1
時,溫度高於高於溫度臨界值或低於溫度臨界值。 如需溫度閾值的詳細資訊,請參閱 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD。
CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded
指出 NVM 子系統可靠性是否已降級。
當此值設定為 1
時,NVM 子系統可靠性因重大媒體相關錯誤或任何降低 NVM 子系統可靠性的內部錯誤而降級。
CriticalWarning.DUMMYSTRUCTNAME.ReadOnly
指出媒體是否處於只讀模式。
當此值設定為 1
時,媒體會處於只讀模式。
CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed
指出揮發性記憶體備份裝置是否失敗。
當此值設定為 1
時,動態記憶體備份裝置就會失敗。 只有在控制器具有變動性記憶體備份解決方案時,此欄位才有效。
CriticalWarning.DUMMYSTRUCTNAME.Reserved
已保留 CriticalWarning 結構的位 05:07。
CriticalWarning.AsUchar
Temperature[2]
表示整體裝置的複合溫度,以度為單位 Kelvin,包括控制器和 NVM 子系統。
如果此欄位中的溫度超過溫度閾值,可能會發生異步事件完成。 如需詳細資訊,請參閱 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD。
識別控制器數據結構中的 WCTEMP 和 CCTEMP 欄位會報告警告和重大的複合溫度閾值。
AvailableSpare
表示剩餘備援容量的標準化百分比 (0 到 100) 。
AvailableSpareThreshold
指出可用備援容量的臨界值。
當 AvailableSpare 的值低於此欄位中所指出的臨界值時,可能會發生異步事件完成。 此值會以標準化百分比表示, (0 到 100) 。
PercentageUsed
根據實際使用量和製造商的 NVM 生命周期預測,指出使用 NVM 子系統生命週期百分比的廠商特定估計值。
值為 100 表示已取用 NVM 子系統中 NVM 的估計耐力,但可能不會指出 NVM 子系統失敗。 允許此值超過 100。 大於 254 的百分比會以 255 表示。 當控制器處於睡眠狀態) 時,每一個電源開啟時,此值會更新一次 (。
Reserved0[26]
保留欄位。
DataUnitRead[16]
指出主機從控制器讀取的512位元組數據單位數目,不包括元數據。
此欄位的值會以千為單位報告,並四捨五入。 例如,值為 1 會對應至讀取的 1000 個單位 512 個字節。 當邏輯區塊存取 (LBA) 大小是 512 個字節以外的值時,控制器會將讀取的數據量轉換為 512 位元組單位。
針對 NVM 命令集,讀取為比較和讀取作業一部分的邏輯區塊會包含在此值中。
DataUnitWritten[16]
指出主機已寫入控制器的 512 位元組數據單位數目,不包括元數據。
此欄位的值會以千為單位報告,並四捨五入。 例如,值為 1 會對應至讀取的 1000 個單位 512 個字節。 當邏輯區塊存取 (LBA) 大小是 512 個字節以外的值時,控制器會將寫入的數據量轉換成 512 位元組單位。
針對 NVM 命令集,寫入作業時寫入的邏輯區塊會包含在此值中。 寫入不可更正的命令不會影響此值。
HostReadCommands[16]
指出控制器所完成的讀取命令數目。
針對 NVM 命令集,這是 Compare 和 Read 命令的數目。
HostWrittenCommands[16]
指出控制器所完成的 Write 命令數目。
針對 NVM 命令集,這是 Write 命令的數目。
ControllerBusyTime[16]
指出控制器忙於 I/O 命令的時間量,以分鐘為單位。
當 I/O 佇列沒有未處理的命令時,控制器會忙碌中。 具體而言,當命令是透過 I/O 提交佇列 Tail doorbell 寫入發出,且對應的完成佇列專案尚未張貼到相關聯的 I/O 完成佇列時。
PowerCycle[16]
表示電源循環的數目。
PowerOnHours[16]
表示電源開啟時數。 這不包括控制器已啟動且處於低電源狀態條件的時間。
UnsafeShutdowns[16]
指出不安全關機的數目。 當關閉通知在控制器設定的SHN欄位中指出,在電源遺失之前,不會收到此計數。
MediaErrors[16]
指出控制器偵測到未復原的數據完整性錯誤發生次數。
此欄位中包含媒體錯誤,例如無法更正的 ECC、CRC 總和檢查碼失敗或 LBA 標籤不符。
ErrorInfoLogEntryCount[16]
指出控制器生命週期的錯誤 資訊 記錄項目數目。
WarningCompositeTemperatureTime
指出控制器運作的時間量,而複合溫度 (溫度) 大於或等於 [警告複合溫度閾值 (WCTEMP) ] 字段,且小於 [識別控制器] 數據結構中的 [重大複合溫度閾值] (CCTEMP) 字段。
如果 [WCTEMP] 或 [CCTEMP] 欄位的值是 0h
,則不論 Temperature 值為何,一律會清除0h
此字段。
CriticalCompositeTemperatureTime
指出控制器運作的分鐘數,而複合溫度 (溫度) 大於 [識別控制器] 數據結構中 [CCTEMP) ] 字段的重要複合溫度 (閾值。
如果 CCTEMP 欄位的值是 0h
,則不論 Temperature 值為何,一律會清除0h
此字段。
TemperatureSensor1
指出溫度感測器 1 所報告的目前溫度,以 Kelvin 為單位。
TemperatureSensor2
指出溫度感測器 2 所報告的目前溫度,以 Kelvin 為單位。
TemperatureSensor3
指出溫度感測器 3 所報告的目前溫度,以 Kelvin 為單位。
TemperatureSensor4
指出溫度感測器 4 所報告的目前溫度,以 Kelvin 為單位。
TemperatureSensor5
指出溫度感測器 5 所報告的目前溫度,以 Kelvin 為單位。
TemperatureSensor6
指出溫度感測器 6 所報告的目前溫度,以 Kelvin 為單位。
TemperatureSensor7
指出溫度感測器 7 所報告的目前溫度,以 Kelvin 為單位。
TemperatureSensor8
指出溫度感測器 8 所報告的目前溫度,以 Kelvin 為單位。
Reserved1[296]
保留欄位。
備註
溫度感測器所報告的溫度可用來觸發異步事件。 如需詳細資訊,請參閱 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
標頭 | nvme.h |