次の方法で共有


NVME_HEALTH_INFO_LOG 構造体 (nvme.h)

SMART /正常性情報ログ ページに含まれる情報を指定するフィールドが含まれています。

[SMART/正常性情報ログ] ページには、電源サイクル間で保持されるコントローラーの寿命に関する SMART および一般的な正常性情報が表示されます。 ログ ページはグローバルベースでサポートされています。 グローバル ログ ページを要求するには、名前空間 FFFFFFFFhを指定します。

SMART /正常性情報ログ ページは、 コントローラーの識別 データ構造で示されているように、名前空間ごとにサポートされる場合もあります。 名前空間ごとにログ ページがサポートされていない場合は、 以外 FFFFFFFFh の名前空間を指定すると、コマンドの状態が NVME_STATUS_INVALID_FIELD_IN_COMMAND で中止されます。 NVMe バージョン 1.3 では、SMART/Health ログ ページに名前空間固有の情報が定義されていないので、グローバル ログ ページと名前空間固有のログ ページには同じ情報が含まれています。

NVM サブシステムの正常性に関する重大な警告は、ホストへの非同期イベント通知によって示されます。 ホストへの非同期イベント通知が発生する警告は、[ 機能の設定] コマンドを使用して構成されます。

パフォーマンスは、SMART/Health Information ログの一部として返されるパラメーターを使用して計算できます。 具体的には、読み取りまたは書き込みコマンドの数、読み取りまたは書き込まれたデータの量、およびコントローラーのビジー時間の量により、1 秒あたりの 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]

コントローラーと 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 として表されます。 この値は、電源オン時間ごとに 1 回更新されます (コントローラーがスリープ状態でない場合)。

Reserved0[26]

予約済みフィールド。

DataUnitRead[16]

ホストがコントローラーから読み取った 512 バイトのデータ ユニットの数を示します。メタデータは含まれません。

このフィールドの値は数千単位で報告され、切り上げられます。 たとえば、値 1 は、読み取られた 512 バイトの 1000 単位に対応します。 論理ブロック アクセス (LBA) サイズが 512 バイト以外の値である場合、コントローラーは読み取ったデータの量を 512 バイト単位に変換します。

NVM コマンド セットの場合、Compare 操作と Read 操作の一部として読み取られた論理ブロックがこの値に含まれます。

DataUnitWritten[16]

ホストがコントローラーに書き込む 512 バイトのデータ ユニットの数を示します。メタデータは含まれません。

このフィールドの値は数千単位で報告され、切り上げられます。 たとえば、値 1 は、読み取られた 512 バイトの 1000 単位に対応します。 論理ブロック アクセス (LBA) サイズが 512 バイト以外の値である場合、コントローラーは書き込まれたデータの量を 512 バイト単位に変換します。

NVM コマンド セットの場合、書き込み操作の一部として書き込まれた論理ブロックがこの値に含まれます。 書き込み修正不可能なコマンドは、この値には影響しません。

HostReadCommands[16]

コントローラーによって完了した読み取りコマンドの数を示します。

NVM コマンド セットの場合、これは Compare コマンドと Read コマンドの数です。

HostWrittenCommands[16]

コントローラーによって完了した書き込みコマンドの数を示します。

NVM コマンド セットの場合、これは書き込みコマンドの数です。

ControllerBusyTime[16]

コントローラーが I/O コマンドでビジー状態になっている時間を分単位で示します。

I/O キューに対して未処理のコマンドがある場合、コントローラーはビジー状態です。 具体的には、I/O 送信キュー Tail ドアベル 書き込みを介してコマンドが発行され、対応する完了キュー エントリがまだ関連付けられている I/O 完了キューにポストされていない場合です。

PowerCycle[16]

電源サイクルの数を示します。

PowerOnHours[16]

電源オン時間の数を示します。 これには、コントローラーの電源が入っていて、低電力状態になった時間は含まれません。

UnsafeShutdowns[16]

安全でないシャットダウンの数を示します。 この数は、コントローラー構成SHN で示されているシャットダウン通知が電源を失う前に受信されなかった場合にインクリメントされます。

MediaErrors[16]

コントローラーが回復されていないデータ整合性エラーを検出した回数を示します。

このフィールドには、修正不可能な ECC、CRC チェックサム エラー、LBA タグの不一致などのメディア エラーが含まれます。

ErrorInfoLogEntryCount[16]

コントローラーの有効期間中の エラー情報 ログ エントリの数を示します。

WarningCompositeTemperatureTime

コントローラーが動作していて、複合温度 (温度) が警告複合温度しきい値 (WCTEMP) フィールド以上で、コントローラーの識別データ構造の [重大な複合温度しきい値 (CCTEMP)] フィールドより小さい時間を分単位で示します。

WCTEMP または CCTEMP フィールドの値が の場合、0hTemperature 値に関係なく、このフィールドは常に に0hクリアされます。

CriticalCompositeTemperatureTime

コントローラーが操作可能で、[コントローラーの識別] データ構造の [重大な複合温度しきい値 (CCTEMP)] フィールドの複合温度 (温度) が大きい時間を分単位で示します。

CCTEMP フィールドの値が の場合、0hTemperature 値に関係なく、このフィールドは常に に0hクリアされます。

TemperatureSensor1

温度センサー 1 によって報告されたケルビンの現在の温度を示します。

TemperatureSensor2

温度センサー 2 によって報告されたケルビンの現在の温度を示します。

TemperatureSensor3

温度センサー 3 によって報告されたケルビンの現在の温度を示します。

TemperatureSensor4

温度センサー 4 によって報告されたケルビンの現在の温度を示します。

TemperatureSensor5

温度センサー 5 によって報告されたケルビンの現在の温度を示します。

TemperatureSensor6

温度センサー 6 によって報告されたケルビンの現在の温度を示します。

TemperatureSensor7

温度センサー 7 によって報告されたケルビンの現在の温度を示します。

TemperatureSensor8

温度センサー 8 によって報告されたケルビンの現在の温度を示します。

Reserved1[296]

予約済みフィールド。

注釈

温度センサーによって報告される温度は、非同期イベントをトリガーするために使用できます。 詳細については、「 NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 10
Header nvme.h

こちらもご覧ください