次の方法で共有


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

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

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

Reserved[2]

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

BufferID

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

BufferOffset[4]

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

ImageLength[4]

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

DataLength[4]

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

Data[ANYSIZE_ARRAY]

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

要件

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