Win32 API 日本語リファレンス
ホームStorage.Nvme › NVME_ASYNC_EVENT_ERROR_STATUS_CODES

NVME_ASYNC_EVENT_ERROR_STATUS_CODES

列挙型
基底型i4

メンバー 6

名前10進16進説明
NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER00x0
NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE10x1

無効なドアベル書き込み値です。ホストソフトウェアが無効なドアベル値を書き込もうとしました。このエラーの原因としては、次のようなものが考えられます。

  • 書き込まれた値が、対応するキューのベースアドレスおよびサイズの範囲外でした。
  • 書き込まれた値が、前回書き込まれたドアベル値と同じでした。
  • ドアベルへの書き込みによって追加されるコマンドの数が、使用可能なエントリ数を超えます。
  • ホストソフトウェアが、満杯の Submission Queue にコマンドを追加しようとしました。
  • ホストソフトウェアが、空の Completion Queue から完了キューエントリを削除しようとしました。
NVME_ASYNC_ERROR_DIAG_FAILURE20x2診断エラーが検出されました。このエラーにはセルフテスト操作が含まれる場合があります。
NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR30x3

持続的な障害が発生し、コントローラーはその障害を特定のコマンドの組に切り分けることができません。

このエラーが示された場合、NVME_CONTROLLER_STATUS 構造体の Controller Fatal Status (CFS) ビットが 1 に設定されることがあり、ホストはリセットを実行する必要があります。詳細については、NVM Subsystem Reset を参照してください。

NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR40x4特定のコマンドの組に固有の一時的な内部エラーが発生しました。コントローラーの動作は、リセットを行わずに継続できる場合があります。
NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR50x5ファームウェアイメージを読み込めませんでした。コントローラーは、以前にアクティブだったファームウェアイメージ、またはベースラインの読み取り専用ファームウェアイメージに戻りました。

公式ドキュメント

一般的なエラーイベントの種類を示す値が含まれます。

解説(Remarks)

この列挙型は、Async Event Request Admin コマンドで使用される NVME_ASYNC_EVENT_TYPES 列挙型の NVME_ASYNC_EVENT_TYPE_ERROR_STATUS フィールドに値を指定するために使用します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum NVME_ASYNC_EVENT_ERROR_STATUS_CODES : int {
    NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER = 0,
    NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1,
    NVME_ASYNC_ERROR_DIAG_FAILURE = 2,
    NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3,
    NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4,
    NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5
} NVME_ASYNC_EVENT_ERROR_STATUS_CODES;
public enum NVME_ASYNC_EVENT_ERROR_STATUS_CODES : int
{
    NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER = 0,
    NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1,
    NVME_ASYNC_ERROR_DIAG_FAILURE = 2,
    NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3,
    NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4,
    NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5,
}
Public Enum NVME_ASYNC_EVENT_ERROR_STATUS_CODES As Integer
    NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER = 0
    NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1
    NVME_ASYNC_ERROR_DIAG_FAILURE = 2
    NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3
    NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4
    NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5
End Enum
import enum

class NVME_ASYNC_EVENT_ERROR_STATUS_CODES(enum.IntEnum):
    NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER = 0
    NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1
    NVME_ASYNC_ERROR_DIAG_FAILURE = 2
    NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3
    NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4
    NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5
// NVME_ASYNC_EVENT_ERROR_STATUS_CODES
pub const NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER: i32 = 0;
pub const NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE: i32 = 1;
pub const NVME_ASYNC_ERROR_DIAG_FAILURE: i32 = 2;
pub const NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR: i32 = 3;
pub const NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR: i32 = 4;
pub const NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR: i32 = 5;
// NVME_ASYNC_EVENT_ERROR_STATUS_CODES
const (
	NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER int32 = 0
	NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE int32 = 1
	NVME_ASYNC_ERROR_DIAG_FAILURE int32 = 2
	NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR int32 = 3
	NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR int32 = 4
	NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR int32 = 5
)
const
  NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER = 0;
  NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1;
  NVME_ASYNC_ERROR_DIAG_FAILURE = 2;
  NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3;
  NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4;
  NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5;
// NVME_ASYNC_EVENT_ERROR_STATUS_CODES
pub const NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER: i32 = 0;
pub const NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE: i32 = 1;
pub const NVME_ASYNC_ERROR_DIAG_FAILURE: i32 = 2;
pub const NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR: i32 = 3;
pub const NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR: i32 = 4;
pub const NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR: i32 = 5;
const
  NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER* = 0
  NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE* = 1
  NVME_ASYNC_ERROR_DIAG_FAILURE* = 2
  NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR* = 3
  NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR* = 4
  NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR* = 5
enum NVME_ASYNC_EVENT_ERROR_STATUS_CODES : int {
    NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER = 0,
    NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1,
    NVME_ASYNC_ERROR_DIAG_FAILURE = 2,
    NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3,
    NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4,
    NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5,
}
#define global NVME_ASYNC_ERROR_WRITE_TO_INVALID_DOORBELL_REGISTER 0x0
#define global NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE       0x1
#define global NVME_ASYNC_ERROR_DIAG_FAILURE                       0x2
#define global NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR   0x3
#define global NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR    0x4
#define global NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR          0x5