共用方式為


SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE結構 (minitape.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

指定根據值傳送或要求的診斷頁面。 針對 Microcode Control 診斷頁面,此值應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
在最後一個 SEND DIAGNOSTIC 命令將 SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE 傳遞至轉譯完成之後,機箱服務程式應驗證完整的微碼影像(例如,執行廠商特定的總和檢查碼)、將新的微碼影像儲存到非揮發記憶體中(例如快閃 ROM),並延遲啟用新的微碼。

如果微碼影像或儲存作業中沒有任何錯誤,則機箱服務程式應將 SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR 中的 [狀態] 字段設定為 SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE中的 [0x13],如果要求,請在下列其中一項之後啟用新的微碼:

  • 使用設定為 0x0F 的 [模式] 字段處理此結構 (亦即啟用延後微碼)
  • 開啟電源
  • 硬式重設
啟用延後微碼
0x0F
指定此模式的 SEND DIAGNOSTIC 命令完成之後,機箱服務程式應啟用延後微碼影像,如果有的話。
保留
所有其他值
保留供日後使用。

Reserved[2]

保留供日後使用。

BufferID

指定機箱服務程式內的特定緩衝區,以接收微碼影像。 機箱服務程式會將廠商特定的緩衝區標識符代碼指派給緩衝區(例如,主要韌體映射可以儲存在緩衝區 00h,而備份韌體映射可能儲存在緩衝區 01h)。 機箱服務程式應支援緩衝區標識碼值為 00h。 如果支援多個緩衝區,則機箱服務程式應該連續指派額外的緩衝區標識碼,從01h開始。 如果機箱服務進程收到不支援的緩衝區標識碼,則它應該中止下載微碼作業,並將 SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR 中的 [狀態] 字段設定為 SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE 結構中的0x80。

BufferOffset[4]

指定緩衝區內以位元組為單位的位移,微碼數據是以四個倍數寫入的緩衝區內。 機箱服務程式可能需要連續增加此欄位的 SEND DIAGNOSTIC 命令。

ImageLength[4]

會指定應用程式打算傳送至指定之 BufferID之微碼影像中的位元組總數。

DataLength[4]

指定 Data的長度,以位元組為單位。

Data[ANYSIZE_ARRAY]

包含廠商特定微碼影像的一部分。

要求

要求 價值
最低支援的用戶端 適用於 Windows 10 版本 1709 和更新版本的 Windows。
標頭 minitape.h (包括 Minitape.h、Storport.h)