共用方式為


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

指定要根據值傳送或要求的診斷頁面。 對於 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 傳遞給子保護完成之後,機箱服務程式應確認完整的微碼映像 (例如,執行廠商特定的總和檢查碼) 、將新的微碼映像儲存到非卷積記憶體 (例如 flash ROM) ,以及延遲啟用新的微碼。

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

  • 使用 [模式 ] 字段設定為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 中提供。
標頭 scsi.h (包含 Minitape.h、Storport.h)