次の方法で共有


SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE構造体 (scsi.h)

SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE 構造体には、エンクロージャ サービス プロセスで使用するベンダー固有のマイクロコード (ファームウェア) イメージが含まれています。

構文

typedef struct _SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE {
  UCHAR PageCode;
  UCHAR SubEnclosureId;
  UCHAR PageLength[2];
  UCHAR ExpectedGenerationCode[4];
  UCHAR Mode;
  UCHAR Reserved[2];
  UCHAR BufferID;
  UCHAR BufferOffset[4];
  UCHAR ImageLength[4];
  UCHAR DataLength[4];
  UCHAR Data[ANYSIZE_ARRAY];
} SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE, *PSES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE;

メンバーズ

PageCode

値に基づいて送信または要求される診断ページを指定します。 マイクロコード制御の診断ページの場合、値は0x0Eする必要があります。

SubEnclosureId

アプリケーション クライアントがマイクロコード イメージを送信するサブ エンクロージャを指定します。 値が SES_CONFIGURATION_DIAGNOSTIC_PAGEで見つかった有効なSUBENCLOSURE_IDENTIFIER フィールド値と一致しない場合、エンクロージャ サービス プロセスは、0x80の状態でマイクロコードのダウンロード操作を中止します。

PageLength[2]

診断ページに続くバイト数を指定します。

ExpectedGenerationCode[4]

生成コードの予期される値を指定します。 このパラメーターが現在の生成コードに設定されていない場合、エンクロージャ サービス プロセスは、0x80の状態でマイクロコードのダウンロード操作を中止します。

Mode

マイクロコードをダウンロードするモードを指定します。

価値 意味
オフセットを含むマイクロコードのダウンロード、保存、アクティブ化
0x07
最後の SEND DIAGNOSTIC コマンドによってマイクロコード制御のダウンロード診断ページがサブエンクロアに配信された後、エンクロージャ サービス プロセスは完全なマイクロコード イメージ (ベンダー固有のチェックサムの実行など) を検証し、新しいマイクロコード イメージを不揮発性ストレージに保存します。

マイクロコード・イメージまたは保管操作にエラーがない場合、エンクロージャー・サービス・プロセスは、以下のいずれかのアクションを実行しなければなりません。

  • SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR の [状態 フィールドを0x10に設定し、必要に応じて、[マイクロコードの状態のダウンロード] 診断ページ、電源オン、またはスタンドアロン エンクロージャ サービス プロセスのハード リセットを返した後で、新しいマイクロコード イメージをアクティブにします。
  • SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTORStatus フィールドを0x11に設定します (要求された場合)。スタンドアロン エンクロージャ サービスの処理の場合のみ、電源オンまたはハード リセット後に新しいマイクロコード イメージをアクティブにします。
  • SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTORStatus フィールドを0x12に設定し(要求された場合)、電源を入れた後に新しいマイクロコード イメージをアクティブにします。
オフセットを含むマイクロコードをダウンロードし、保存して、アクティブ化を延期
0x0E
サブ保証に SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE を配信する最後の SEND DIAGNOSTIC コマンドが完了すると、エンクロージャ サービス プロセスは、完全なマイクロコード イメージ (ベンダー固有のチェックサムの実行など) を検証し、新しいマイクロコード イメージを不揮発性ストレージ (フラッシュ ROM など) に保存し、新しいマイクロコードのアクティブ化を延期します。

マイクロコード・イメージまたは保管操作にエラーがない場合、エンクロージャー・サービス・プロセスは、SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR の「状況」フィールドを SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGEの0x13 (要求された場合) に設定し、次のいずれかの後に新しいマイクロコードをアクティブにします。

  • モード フィールドを 0x0F に設定してこの構造体を処理する (つまり、遅延マイクロコードのアクティブ化)
  • 電源オン
  • ハード リセット
遅延マイクロコード をアクティブ化する
0x0F
このモードを指定する SEND DIAGNOSTIC コマンドが完了すると、エンクロージャ サービス プロセスによって遅延マイクロコード イメージがアクティブ化されます (存在する場合)。
予約済み
その他のすべての値
将来の使用のために予約されています。

Reserved[2]

将来の使用のために予約されています。

BufferID

マイクロコード・イメージを受け取るエンクロージャー・サービス・プロセス内の特定のバッファーを指定します。 エンクロージャ サービス プロセスは、ベンダー固有のバッファー ID コードをバッファーに割り当てます (たとえば、メイン ファームウェア イメージはバッファー 00h に格納され、バックアップ ファームウェア イメージはバッファー 01h に格納される場合があります)。 エンクロージャ サービス プロセスでは、バッファー ID 値 00h をサポートする必要があります。 複数のバッファーがサポートされている場合、エンクロージャ サービス プロセスは、01h から始まる追加のバッファー ID コードを連続して割り当てる必要があります。 エンクロージャ サービス プロセスがサポートされていないバッファー ID コードを受け取った場合、マイクロコードのダウンロード操作を中止し、SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTORStatus フィールドを SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE 構造体の0x80に設定します。

BufferOffset[4]

マイクロコード データが 4 の倍数で書き込まれるバッファー内のオフセットをバイト単位で指定します。 エンクロージャ サービス プロセスでは、連続する SEND DIAGNOSTIC コマンドでこのフィールドを連続して増加させる必要がある場合があります。

ImageLength[4]

は、アプリケーションが指定された BufferIDに送信するマイクロコード イメージの合計バイト数を指定します。

DataLength[4]

データの長さをバイト単位で指定します。

Data[ANYSIZE_ARRAY]

ベンダー固有のマイクロコード イメージの一部が含まれています。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1709 以降のバージョンの Windows で使用できます。
ヘッダー scsi.h (Minitape.h、Storport.h を含む)