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
指定要下載微碼的模式。
價值 | 意義 |
---|---|
|
在最後一個 SEND DIAGNOSTIC 命令將 [下載微碼控制] 診斷頁面傳遞至子封存完成之後,機箱服務程式應驗證完整的微碼影像(例如,執行廠商特定的總和檢查碼),並將新的微碼影像儲存到非大量記憶體中。
如果微碼影像或儲存作業中沒有任何錯誤,機箱服務程式應執行下列其中一個動作:
|
|
在最後一個 SEND DIAGNOSTIC 命令將 SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE 傳遞至轉譯完成之後,機箱服務程式應驗證完整的微碼影像(例如,執行廠商特定的總和檢查碼)、將新的微碼影像儲存到非揮發記憶體中(例如快閃 ROM),並延遲啟用新的微碼。
如果微碼影像或儲存作業中沒有任何錯誤,則機箱服務程式應將 SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR 中的 [狀態] 字段設定為 SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE中的 [0x13],如果要求,請在下列其中一項之後啟用新的微碼:
|
|
指定此模式的 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) |